2017-02-15 2 views
1

Ich versuche, die Image-Datei von requests.get()„FileNotFoundError: [Errno 2] Datei oder das Verzeichnis“, wenn zu schreiben versucht, eine Datei

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.') 

So bekam zu retten, wenn Bild gutartig Das Bild wird in den 'gutartigen' Ordner verschoben. Wenn ich rufe die Funktion

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

Hier ist, was ich bekommen:

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' 

Ich dachte, das Problem in den Schreib permission.I ist versucht, 'wb' zu verwenden, 'wb +', 'a +' aber nichts half.

+1

Was die Werte von 'IMAGE_PATH' sind,' class_path' und 'INCR' – ZdaR

+1

Der Dateiname scheint Beginnen Sie mit einem Zitat '' '(wie Sie sehen können, gibt es kein schließendes). Ist es ein Fehler beim Kopieren des Nachrichtenfehlers oder ist der Zitatteil des Dateinamens? –

+0

IMAGE_PATH = '~/tf_files /', Klassenpfad = 'gutartig /', INCR = 0 ist das Inkrement, das jedes heruntergeladene Bild um eins erhöht, um die Bilder zu nummerieren. – dulatus

Antwort

1

~/tf_files ist kein gültiger Pfad, es sei denn, Sie arbeiten in einer Shell; Die ~ wird von bash und Co. zu Ihrem Home-Verzeichnis erweitert, nicht vom Betriebssystem. Wenn Sie Tilden in Pfade in Python haben wollen, sollten Sie sie durch os.path.expanduser laufen, bevor Sie die open:

path = IMAGE_PATH+class_path+str(INCR)+'.jpg' 
path = os.path.expanduser(path) 
with open(path, 'wb+') as f: 
    # ... 
    pass 
Verwandte Themen