2017-09-11 21 views
1

pythonでは、初めてフォルダを作成すると、ディレクトリが作成され、そのフォルダパスにファイルが正常に作成されます。同じ場所に新しいファイルを作成する必要がある場合は、次のエラーが表示されます。Python [Errno 17] File exists問題

[Errno 17] File exists: '/home/test/files/tweets/'. 

お願いします。

if len(downloadedfile) > 0: 
    #insert_time=time.strftime('%Y_%-m_%-d') 
    #download_path='/home/test/files/tweets/' 
    #file_path= download_path+insert_time+"/"+hashes 
    #print(file_path) 
    now = datetime.now 
    new_folder = '/home/test/files/tweets/{}'.format(now().strftime('%Y_%-m_%-d')) 
    os.mkdir(new_folder, 0755); 
    folder_path = new_folder+"/"+hashes 
    fo = open(folder_path,"wb") 
    fo.write(downloadedfile) 
    fo.close() 
    print("File Downloaded") 
else: 
    print("File Not Downloaded") 
+1

例外は 'try' /' except'で捕捉できます。 –

+2

代わりにos.makedirsをexist_ok = True paramと併用することをお勧めします –

答えて

1

キャッチtry:except:OSError:これは無視するかもしれない他のエラーがあるとして

try: 
    os.mkdir(new_folder, 0755) 
except OSError: 
    pass 

これは、少し不十分です。

+0

正確なエラーを見つけるために 'errno'属性をテストできることに注意してください。 – cdarke

+0

@cdarkeのように 'errno'属性をテストすることができますが、これはOS依存性を導入します(Windows、Mac、Linux、他のUnixが同じエラーコードを使用することは保証されません)。 –

1

ファイルが存在するかどうかを確認するには、この機能を使用します。

os.path.isdir()

+0

pathがdirectoryの場合はfalseを返します。 –

+0

@ YaroslavSurzhikovが修正されました。 –

関連する問題