python ファイルの移動について
Q&A
Closed
解決したいこと
pythonでのファイル移動
ネットで拾ったサンプルコードを写経して勉強している超が付く初心者です。よろしくお願いします。
使い終えたファイルを複数アーカイブファイルに移動したいのですが、なぜか1つだけ毎回残ってエラーが出ます。
別のプログラム内で全く同じコードを使いまわした場合にエラーは出ず全て移動できています。
エラーが出ない方はテキストファイルで、エラーが出るのはlzhファイルの移動です。
発生している問題・エラー
プロセスはファイルにアクセスできません。別のプロセスが使用中です
例)
shutil.move(item,"daydrive/archive/bangumihyou_lzh/")
File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\shutil.py", line 883, in move
os.unlink(src)
PermissionError: [WinError 32] プロセスはファイルにアクセスできません。別のプロセスが使用中です。: 'daydrive/dayMy Drive/bangumihyou_lzh\b240224.lzh'
該当するソースコード
python
#エラーが出ないコード↓
print("ファイルを移動します")
move_file_list = glob.glob("daydrive/dayMy Drive/bangumihyou_txt/" + "*")
for item in move_file_list:
shutil.move(item,"daydrive/archive/bangumihyou_txt/")
print("ファイルを移動しました")
#エラーが出るコード↓
print("ファイルを移動します")
move_file_list = glob.glob("daydrive/dayMyDrive/bangumihyou_lzh/*.lzh")
for item in move_file_list:
shutil.move(item,"daydrive/archive/bangumihyou_lzh/")
print("ファイルを移動しました")
自分で試したこと
毎回同じ位置に複数の同じファイルをおいて再現をしています。
エラーがでない方は全て指定したフォルダに移動できています。
エラーが出る方は指定したフォルダに全部移動できていますが、元のフォルダになぜか1つだけ毎回残ります。(移動先と重複になる)。
元のフォルダに残るファイルですが前回はyama.lzh,今回はkawa.lzhなど実行するたびに変わります。
最後の1つも移動先ファイルにあるので自分ではshutil.moveの動きが”コピーをして移動→元を削除”で、なぜか最後の削除だけできてないのかな”くらいしかわかりません。
何がわからないかもわからない状態で説明不足もあるとは思いますがどうぞアドバイスのほど、よろしくお願いします。