有人能告诉我这段代码有什么问题吗?

时间:2017-12-13 20:14:26

标签: python

我正在尝试重命名某些文件,但它给了我这个错误:

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)

1 个答案:

答案 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)