python中的文件结构重命名

python中的文件结构重命名,python,Python,希望有人能帮我整理一下我正在做的项目的想法。我目前正在尝试编写一个python脚本,以特定的格式和顺序重命名电视节目的名称 假设我有一个如下的文件结构 Game of thrones Season 1 Episode 1ndjakchekzu.mkv Episode 2 mcndnsjhf.mkv 我希望写一个脚本,使文件结构看起来像这样 `Game of Thrones Season 01 Episode 01.mkv Episode 02.m

希望有人能帮我整理一下我正在做的项目的想法。我目前正在尝试编写一个python脚本,以特定的格式和顺序重命名电视节目的名称

假设我有一个如下的文件结构

Game of thrones
Season 1
   Episode 1ndjakchekzu.mkv
   Episode 2 mcndnsjhf.mkv
我希望写一个脚本,使文件结构看起来像这样

`Game of Thrones
    Season 01
       Episode 01.mkv
       Episode 02.mkv
任何关于组织、使用工具或已有脚本的提示都会非常有用,谢谢

导入操作系统,系统 `i=1

使路径成为指定的文件夹 path=输入文件文件夹路径

用于测试 path=C:\Users\Desktop\Naruto

#variable for extension
#extension = input("Enter the file type.")
 extension = ".avi"
#prints out original files in folder
 os.chdir(path)
 for file in os.listdir():
    src=file
    dst="e"+str(i).zfill(2) + extension
    os.rename(src,dst)
    i+=1
    print (os.listdir(path))

到目前为止,这就是我所得到的,但当运行它时,我似乎在某个地方丢失了以220开始,以209结束的剧集,并且这些剧集在重命名后出现了顺序问题。

您走的是正确的道路。找到一个普遍的解决方案可能很困难。 我的示例从文件名中提取了剧集编号,并再次使用它

import glob,os,re

path = os.path.expanduser('~/Desktop/Naruto')
suff = '.avi'
length = 0

for src in glob.iglob(os.path.join(path, f'*{suff}')):
    match = re.match(r'^Episode\s+(?P<num>\d+).*$', os.path.basename(src))
    if not match: raise Exception('missmatch found: {src!r}')
    length = max(length, len(match.group('num')))

for src in glob.iglob(os.path.join(path, f'*{suff}')):
    match = re.match(r'^Episode\s+(?P<num>\d+).*$', os.path.basename(src))
    if not match: raise Exception('missmatch found: {src!r}')
    fname = f"ep_{match.group('num').zfill(length)}{suff}"
    dst = os.path.join(os.path.dirname(src), fname)
    os.rename(src, dst)

欢迎来到stackoverflow。这不是免费的代码编写服务。请回答您的问题并附上您的代码。当你运行它时会发生什么?你以为会发生什么?有错误吗?你到底在挣扎什么?另见。