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

时间:2019-07-01 09:51:10

标签: python python-3.x file rename

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

我已经尝试使用os.rename进行多种操作,但是我真的无法使其正常工作。

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

  1. 使用rsplit在文件末尾分隔文件名(假设姓氏是一个单词)
  2. 后退并重新加入以获得<name> <lastname>
  3. 重建新文件名并重命名文件。

也使用pathlib包进行文件操作。

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)


答案 1 :(得分:0)

尝试一下,

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试一下:您可以通过搜索特定的字符串来修改文件名,然后反转文件名。

path = "C:/Test/"
entries = os.listdir(path)
   for entry in entries:
       old_filename = re.search('(.+?)$', entry).group(1)
       new_filename = ' '.join(old_str.split()[-1::-1])
       modified_path = path+new_filename
       print(modified_path)

O / p:

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