尝试重命名 Python 中的某些文件时找不到指定的路径

Cannot find the path specified when attempting to rename certain files in Python

我正在尝试编写一个脚本来重命名我在外部硬盘上的所有电视节目文件。使用正则表达式,它应该找到每一集的季节和剧集编号,然后按照我在下面的代码中指定的特定格式重命名文件。我面临的问题是,当我 运行 它时,我不断收到以下错误。

Here is the error I'm encountering

这是我的代码:

import os, re

file_name_regex = re.compile(r'[s]\d{2}[e]\d{2}', re.IGNORECASE)


root_name_regex = re.compile(r'\?(.+?)\|(.+)')

listing = os.walk('E:\TV Shows')
for root, directories, files in listing:
    for f in files:
        if re.search(file_name_regex, f):
            matched_file_name = file_name_regex.search(f)

            #Gives you the season / episode numbers
            season_episode_identify = matched_file_name.group()

            #Gives you the name of the TV show
            path_list = root_name_regex.findall(root)
            tv_show_name = path_list[2][0]

            new_file_path = os.path.join(root, tv_show_name + ' ' + season_episode_identify)
            old_file_path = os.path.join(root, tv_show_name, f)

            print(f'Renaming "{old_file_path}" to "{new_file_path}"...')
            os.rename(old_file_path, new_file_path)

提前感谢您的帮助!!

你的代码有点乱。考虑使用 pathlib module。你可以这样做

from pathlib import Path

path_root = Path('E:\TV Shows')
for path_file in path_root.rglob('*.*'):
    file_name_regex.search(path_file.name)
    ....

路径的解析也可以使用单个重新模式来完成。

您收到的错误可能是由于缺少子目录。您不能将文件移动到不存在的目录中。您必须事先创建它。使用 pathlib 你可以做类似

的事情
new_file_path.parent.mkdir(parents=True, exist_ok=True)

不过你也可以用os.mkdir()