2017-03-28 9 views
-1

print()関数の出力をどのように返すことができますか?私は次の関数戻り値とPythonでの印刷

def read_image(raw_image_path): 
    raw_image_path = get_one_track() 
    with open (raw_image_path) as raw_image_file: 
     content = raw_image_file.readlines() 
     for content in itertools.islice(content,1,len(content)): 
      image_id = content.split()[0] 
      driver_id = content.split()[2] 
      camera_spec = content.split()[1] + content.split()[2] 
      image_spec = [image_id,driver_id,camera_spec] 

      image_folder_file = read_img_folders_file()[0] 
      cam_spec=read_img_folders_file()[1] 
      nb = read_img_folders_file()[2] 
      image_path='' 
      for i in range(nb-1): 
      if cam_spec[i]== image_spec[2]: 
       image_path=image_folder_file[i]+'/' 

      raw_image= image_path+str(image_id).zfill(10)+'.png' 
      #print (raw_image) 
      return (raw image) 

を持っている問題は、私は、印刷(raw_image)を使用する場合、私は私がなる機能の外へ出るそれらをしようとしたとき、私は私が

/home/stereo_front_left/0000001756.png 
/home/stereo_front_left/0000001757.png 
/home/stereo_front_left/0000001758.png 

のように必要なすべての画像となるが、ということですちょうど最初のもの。私に何ができる?

+0

yes 'print()'は関数を終了し、 'yield raw_image'を使用して関数を実行すると' print(list(read_image(raw_image_path))) 'を使用します。 –

+0

@Chris_Rands: ** 'return' **は関数を終了します。" – Matthias

+0

@Chris_Rands "printは関数を終了します"?いつから? – khelwood

答えて

0

すべてのraw_imageをループ外にしたい場合は、それらをリストまたはどこかに格納してから、 "return all_raw_images"を書き込む必要があります。

all_raw_images = [] 
    for content in itertools.islice(content,1,len(content)): 
      image_id = content.split()[0] 
      driver_id = content.split()[2] 
      camera_spec = content.split()[1] + content.split()[2] 
      image_spec = [image_id,driver_id,camera_spec] 

      image_folder_file = read_img_folders_file()[0] 
      cam_spec=read_img_folders_file()[1] 
      nb = read_img_folders_file()[2] 
      image_path='' 
      for i in range(nb-1): 
       if cam_spec[i]== image_spec[2]: 
        image_path=image_folder_file[i]+'/' 

      raw_image= image_path+str(image_id).zfill(10)+'.png' 
      all_raw_images.append(raw_image) 

    return (all_raw_images) 
-1

print()を返す必要はありません。

メソッドではなく関数であるため、自動的に戻ります。

ご質問いただきありがとうございました。 ():

+0

これは質問への回答を提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 17043317) – Parfait