У меня есть папка, содержащая некоторые файлы.Мой код должен скопировать эти файлы в новую папку с новым именем.Обратите внимание, что «clean_file_name» - это моя функция для изменения некоторых имен файлов ... сейчас это не важно.
Допустим, исходное имя файла - «my file name.pdf», а имя нового файла становится «my_file_name»..pdf "
import os
import shutil
path = "E:\\sourcedir\\"
os.mkdir(os.path.join(path,'renamed'))
for r,d,f in os.walk(path):
for file in f:
if '.pdf' in file:
newfilename = clean_file_name(file)
src = os.path.join(path,file)
dst = os.path.join(path,'renamed',new_file_name)
shutil.copyfile(src,dst)
...
something else
Если я запускаю этот код, создается переименованный каталог, все файлы копируются в этот каталог с новым именем, но я получаю сообщение об ошибке!
Traceback (most recent call last):
File "E:\listadir.py", line 81, in <module>
shutil.copyfile(oldfile,newfile)
File "C:\Users\Simone\AppData\Local\Programs\Python\Python37- 32\lib\shutil.py", line 120, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\sourcedir\\my_file_name.pdf'
И, конечно, ничего, что находится ниже этой точки, не обрабатывается.
РЕДАКТИРОВАТЬ Я решил эту проблему, выполнив процесс в два отдельных этапа.Сначала я копирую файлы в «переименованную» папку. Затем я делаю все свои операции в новой папке.
Это мой первый скрипт на python ... Мне интересно знать, почему я могу скопировать и переименоватьвнутри то же самое для цикла.