Файл не найден с Shutil.copyfile - PullRequest
0 голосов
/ 18 мая 2019

У меня есть папка, содержащая некоторые файлы.Мой код должен скопировать эти файлы в новую папку с новым именем.Обратите внимание, что «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 ... Мне интересно знать, почему я могу скопировать и переименоватьвнутри то же самое для цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...