在python中重命名多个文件

2024-05-28 18:15:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道在python中使用re-module重命名多个文件最简单的方法是什么,如果可能的话。

在我的目录中,它们是25个文件,文件名的格式是“一个唯一的名称后跟20个相同的字符.mkv”

我想删除所有20个字符。

如果有可能的话,我怎么能用Python做到这一点:)


Tags: 文件方法re目录名称文件名格式字符
3条回答

要获取新名称:

>>> 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

要获取要重命名的文件列表,请使用glob.glob('*.mkv')http://docs.python.org/library/glob.html#glob.glob

把这些放在一起我们得到:

for filename in glob.glob('*.mkv'):
    if len(filename) > 24:
        os.rename(filename, filename[:-24] + '.mkv'

由于要从字符串中易于识别的点中剪切特定数量的字符,因此re模块有些过头了。可以将新文件名准备为:

new_name = old_name.rsplit('.', 1)[0][:-20] + '.mkv'

要查找文件,请查找os.listdir(或者,如果要递归地查找目录,os.walk),并重命名它们,请参见os.rename

如果目录中有其他不想重命名的.mkv文件,re模块将非常有用,因此需要进行更仔细的检查以标识“目标”文件名。

使用glob查找文件名,分割字符串,并使用os.rename()重命名它们。

相关问题 更多 >

    热门问题