目的
csvファイルに用意してるリストに従って、大量のファイルを移動修正したいです。
例えば手元に
01.doc,03.doc
02.doc,04.doc
03.doc,05.doc
04.doc,06.doc
05.doc,07.doc
というcsvがあるとします。
それに従って1列目のファイル名を検索し、存在した場合2列目のファイル名にリネームしたいです。
ひとまず
python
1import os 2import csv 3 4with open('C:/Rename/name.csv', 'r') as csvfile: 5 csvreader = csv.reader(csvfile, delimiter=',', quotechar='"') 6 for row in csvreader: 7 old = row[0] 8 new = row[1] 9 if os.path.exists(old): 10 os.rename(old, new) 11 else: 12 print(old + " does not exist")
としてみましたが、01.docを03.docにリネームする際に03.docが重複してしまうため(?)
FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。
と出てしまいます。それならファイルを移動させてからリネームすればいいのかと考え、shutilを使う事を考えましたが詰まってしまいました。
python
1import os 2import csv 3import shutil 4 5with open('C:/Rename/name.csv', 'r') as csvfile: 6 csvreader = csv.reader(csvfile, delimiter=',', quotechar='"') 7 for row in csvreader: 8 old = row[0] 9 new = row[1] 10 if os.path.exists(old): 11 shutil.move('C:/Rename/old','C:/Rename/Newname/new') 12 else: 13 print(old + " does not exist")
としてみましたが、根本的にshutilを間違っているらしく
C:/Rename/old
C:/Rename/Newname/new
を見つけることが出来ないとエラーが出てしまいます。
申し訳ありませんが、宜しくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/12 14:44