2024-05-28 18:15:54 发布
网友
我想知道在python中使用re-module重命名多个文件最简单的方法是什么,如果可能的话。
在我的目录中,它们是25个文件,文件名的格式是“一个唯一的名称后跟20个相同的字符.mkv”
我想删除所有20个字符。
如果有可能的话,我怎么能用Python做到这一点:)
要获取新名称:
>>> re.sub(r'.{20}(.mkv)', r'\1', 'unique12345678901234567890.mkv') 'unique.mkv'
或者没有regex:
>>> 'unique12345678901234567890.mkv'[:-24] + '.mkv' 'unique.mkv'
要重命名文件,请使用os.rename(old, new):http://docs.python.org/library/os.html#os.rename
os.rename(old, new)
要获取要重命名的文件列表,请使用glob.glob('*.mkv'):http://docs.python.org/library/glob.html#glob.glob
glob.glob('*.mkv')
把这些放在一起我们得到:
for filename in glob.glob('*.mkv'): if len(filename) > 24: os.rename(filename, filename[:-24] + '.mkv'
由于要从字符串中易于识别的点中剪切特定数量的字符,因此re模块有些过头了。可以将新文件名准备为:
re
new_name = old_name.rsplit('.', 1)[0][:-20] + '.mkv'
要查找文件,请查找os.listdir(或者,如果要递归地查找目录,os.walk),并重命名它们,请参见os.rename。
os.listdir
os.walk
os.rename
如果目录中有其他不想重命名的.mkv文件,re模块将非常有用,因此需要进行更仔细的检查以标识“目标”文件名。
使用glob查找文件名,分割字符串,并使用os.rename()重命名它们。
glob
os.rename()
要获取新名称:
或者没有regex:
要重命名文件,请使用
os.rename(old, new)
:http://docs.python.org/library/os.html#os.rename要获取要重命名的文件列表,请使用
glob.glob('*.mkv')
:http://docs.python.org/library/glob.html#glob.glob把这些放在一起我们得到:
由于要从字符串中易于识别的点中剪切特定数量的字符,因此
re
模块有些过头了。可以将新文件名准备为:要查找文件,请查找
os.listdir
(或者,如果要递归地查找目录,os.walk
),并重命名它们,请参见os.rename
。如果目录中有其他不想重命名的.mkv文件,
re
模块将非常有用,因此需要进行更仔细的检查以标识“目标”文件名。使用
glob
查找文件名,分割字符串,并使用os.rename()
重命名它们。相关问题 更多 >
编程相关推荐