ディレクトリのツリー内のすべての Excel ファイルを別のディレクトリにコピーする Python スクリプトを作成しています。簡単ですよね?
なんらかの理由で、shutil.copy (または copy2、または copyfile) は何もせず、エラー メッセージを吐き出すことさえしません。何か案は?
def goFunc(self, event):
print "Starting Go"
for (path, dirs, files) in os.walk(self.path):
print path
print dirs
print files
for every_file in files:
filename = str(path) + str(every_file)
print filename
if filename.endswith('.xlsx'):
print "Copying " + filename + " to " + str(self.path2)
shutil.copyfile(filename, str(self.path2))
print "All DONE!"
そのため、コピー手順を除いて試してみましたが、問題はその手順にあるようです:
def goFunc(self, event):
print "Starting Go"
for (path, dirs, files) in os.walk(self.path):
print path
print dirs
print files
for every_file in files:
filename = str(path) +'/' + str(every_file)
print filename
if filename.endswith('.xlsx'):
print "Copying " + filename + " to " + str(self.path2)
try:
shutil.copyfile(filename, str(self.path2))
except:
print "Something went wrong"
pass
print "All DONE!"
出力は次のようになります。
Starting Go
/Users/laptop/Desktop
[u'test']
[u'.DS_Store', u'.localized', u'Maytag.xlsx', u'mer.xlsx']
/Users/laptop/Desktop/.DS_Store
/Users/laptop/Desktop/.localized
/Users/laptop/Desktop/Maytag.xlsx
Copying /Users/laptop/Desktop/Maytag.xlsx to /Users/laptop/test
Something went wrong
/Users/laptop/Desktop/mer.xlsx
Copying /Users/laptop/Desktop/mer.xlsx to /Users/laptop/test
Something went wrong
/Users/laptop/Desktop/test
[]
[]
All DONE!
何らかの理由でファイルがまだコピーされていません。
解決:
宛先にファイル名を追加する必要があったようです。今では魅力のように機能します!皆さん、お時間とご協力をありがとうございました。
def goFunc(self, event):
print "Starting Go"
for (path, dirs, files) in os.walk(self.path):
print path
print dirs
print files
for every_file in files:
filename = str(path) +'/' + str(every_file)
print filename
if filename.endswith('.xlsx'):
print "Copying " + filename + " to " + str(self.path2) + '/' + str(every_file)
try:
shutil.copyfile(filename, str(self.path2)+'/'+ str(every_file))
except:
print "Something went wrong"
pass
print "All DONE!"