如何在Python中重命名多个文件

2024-04-27 00:37:23 发布

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

我是python的初学者,我需要编写一个脚本来重命名文件名。你知道吗

我的文件的格式是姓氏,但我需要他们的姓氏名称

我有这样的文件:

C:/Test/Smith John
C:/Test/Jones Fred
C:/Test/Jack Martin Ben 

我需要他们这样:

C:/Test/John Smith 
C:/Test/Fred Jones 
C:/Test/Ben Jack Martin

我试过很多东西操作系统重命名但我真的不能让它工作。你知道吗

提前谢谢你的帮助。你知道吗


Tags: 文件test脚本文件名格式fredjohn重命名
3条回答
import os

# change working directory to the (C:/Test/)
os.chdir(“C:/Test/“)
os.rename(“Smith John”, “John Smith”)
os.rename(“Jones Fred”, “Fred Jones” )
os.rename(“Jack Martin Ben”, “Ben Jack Martin”)
  1. 使用rsplit在最后一个空格处拆分文件名(假设姓氏是单个单词)
  2. 反转并重新连接以获得<name> <lastname>
  3. 重新生成新文件名并重命名文件。你知道吗

也可以使用^{}包进行文件操作。你知道吗

from pathlib import Path

if __name__ == '__main__':
    source_dir = Path('C:/Test')
    for file in source_dir.glob('**/*'):
        if file.is_dir():
            continue
        name_parts = file.stem.rsplit(maxsplit=1)
        name_reversed = ' '.join(name_parts[::-1])
        new_path = file.with_name(name_reversed + file.suffix)
        # check the result
        print(file, new_path)
        # rename
        # file.rename(new_path)


试试这个

import os
path = "C:/Test/Smith John"
os.rename(re.search('Test\/(.+?)$', path).group(1), v.split(' ')[1]+" "+v.split(' ')[0])

相关问题 更多 >