2017-02-15 14 views
1

をファイルに書き込もうとしたとき、私は(requests.getによって得た画像ファイルを保存しようとしています)「FileNotFoundError:[errnoを2]いいえそのようなファイルやディレクトリは」

def get_image_file(class_path,image_id): 
    r = requests.get(BASE_REQUEST_URL+'/image/'+image_id+'/download', stream=True) 
    print(r.url) 
    if r.status_code == 200: 
     with open(IMAGE_PATH+class_path+str(INCR)+'.jpg', 'wb+') as f: 
      r.raw.decode_content = True 
      shutil.copyfileobj(r.raw, f) 
      print("Image saved") 
    else: 
     print('Can not save the image.') 

ので、画像が良性である場合、画像は '良性'フォルダに移動します。 私は何を得る。ここ

get_image_file('benign/','5436e3acbae478396759f0d5') 

関数を呼び出すとき:

https://isic-archive.com/api/v1/image/5436e3acbae478396759f0d5/download 
Traceback (most recent call last): 
File "image_fetch.py", line 59, in <module> 
    get_image_file('benign/','5436e3acbae478396759f0d5') 
File "image_fetch.py", line 34, in get_image_file 
    with open(IMAGE_PATH+class_path+str(INCR)+'.jpg', 'wb+') as f: 
FileNotFoundError: [Errno 2] No such file or directory: '~/tf_files/benign/0.jpg' 

私は '+'、 '+ WB'、問題はpermission.Iが 'WB' を使用しようとした書き込みであると思いましたしかし何も助けなかった。

+1

IMAGE_PATH'、 'class_path'と' INCR' – ZdaR

+1

'の値であり、どのようなファイル名がいるようだ:あなたがPythonでのパスでチルダを持っているしたい場合は、open行う前os.path.expanduserを介してそれらを実行する必要がありますクォート '' 'で始まります(閉じていないことがわかります)。メッセージエラーをコピーするときにエラーになるか、ファイル名の引用部分になりますか? –

+0

IMAGE_PATH = '〜/ tf_files /'、class_path = 'benign /'、INCR = 0は、イメージを数値化するためにダウンロードしたイメージを増分する増分です。 – dulatus

答えて

1

~/tf_filesは、シェルで作業している場合を除き、有効なパスではありません。 ~は、OSではなくホームディレクトリにbashまで拡張されます。

path = IMAGE_PATH+class_path+str(INCR)+'.jpg' 
path = os.path.expanduser(path) 
with open(path, 'wb+') as f: 
    # ... 
    pass 
関連する問題