我正在尝试重命名某些文件,但它给了我这个错误:
File "C:/Users/XhesiLocal/PycharmProjects/Prova/provaprova", line 19, in <module> os.rename(f, new_name)
FileNotFoundError: [WinError 3]
代码:
import os
os.chdir('C:\\Users\XhesiLocal\Desktop\Analisi 2018')
print(os.getcwd())
for f in os.listdir():
f_name, f_ext = os.path.splitext(f)
f_nota, f_data = f_name.split('Lez')
f_nota = f_nota.strip()[4:]
f_data = f_name.split('_')
f_inutile, f_giorno, f_mese = f_data
f_giorno = f_giorno.strip()
new_name = '{} - {}/{}{}'.format(f_nota, f_giorno, f_mese, f_ext)
print(new_name)
os.rename(f, new_name)
答案 0 :(得分:3)
错误显然是找不到该文件。但是,由于您的源文件名f
取自os.listdir()
,而不是它:文件有在那里。
问题在于:
new_name = '{} - {}/{}{}'.format(f_nota, f_giorno, f_mese, f_ext)
新名称将是包含斜杠的名称。因此,斜杠之前的部分将是文件将被移动的目录。如果该目录不存在,则os.rename
将失败并出现上述错误。
要将文件移动到其他目录,您需要确保该目录首先存在,例如使用os.makedirs
:
os.makedirs(os.dirname(new_name))
os.rename(f, new_name)