すべてのjpgファイルをソースからターゲットに移動するためのコードがあります。初めてコードが正常に動作し、ファイルを移動しますが、再度実行すると、ファイルが既に存在するというエラーが発生します。ここでディレクトリが既に存在する場合はshutil.move
Traceback (most recent call last):
File "/Users/tom/Downloads/direc.py", line 16, in <module>
shutil.move(jpg, dst_pics)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", line 542, in move
raise Error("Destination path '%s' already exists" % real_dst)
shutil.Error: Destination path '/Users/tom/Downloads/Dest/Pictures/Photo3.jpg' already exists
は私のコード
import os
import glob
import shutil
local_src = '/Users/tom/Downloads/'
destination = 'Dest'
src = local_src + destination
dst_pics = src + '/Pictures/'
print(dst_pics)
for pic in glob.iglob(os.path.join(src, "*.jpg")):
if os.path.isfile(pic):
if not (os.path.isfile(dst_pics + pic)):
shutil.move(pic, dst_pics)
else:
print("File exists")
が、私はそれがファイルが存在するかどうかを確認するために、ファイルや小切手を上書きし、それをスキップすることができます何かできることはありますか?
私はそれを@Justas Gの解決法で解決することができました。ここで
が解決
for pic in glob.iglob(os.path.join(src, "*.jpg")):
if os.path.isfile(pic):
shutil.copy2(pic, dst_pics)
os.remove(pic)
ずつ移動し、私はすでにその解決策を試してみましたが、それはうまくいかなかった。完全パスを使用した後もファイルを上書きしません。 –
'os.path.exists(dir):'チェックを行い、 'shutil.rmtree(dir)'が存在する場合は 'shutil.rmtree(dir)'を実行しようとしましたか?その時点で、そのパスに書き込むことができるはずです。 pathlibモジュールを使用して同様のアクションを実行できます。 – idjaw