繁体   English   中英

如何使用 Python 有效地重命名文件名?

[英]How to efficiently rename file names using Python?

我正在尝试基于;;;重命名文件分隔值。

示例列表是

name1;;;name_1
name2;;;name_2
name3;;;name_3

在目录中,我有诸如name_1.txtname_2.txt等文件。

下面是我的代码。

import os
import sys

#Usage: python rename.py rename.lst directory

r_lst = sys.argv[1]
directory = sys.argv[2]

with open(r_lst) as rfile:
    remove_list = rfile.readlines()

remove_list = [x.strip() for x in remove_list]

for item in remove_list:
    A_Column = item.split(";;;")[0]
    B_Column = item.split(";;;")[1]

    for filename in os.listdir(directory):
        basename = filename.split(".")[0]
        if basename == B_Column:
            new_name = A_Column + "." + filename.split(".")[1]
            os.rename(directory+filename, directory+new_name)

我的代码致力于将文件重命名为正确的名称。 但是,如何让这个程序更有效率呢? 它迭代remove_list然后在该迭代中它还迭代目录中的文件。

我可以让这个程序更有效率吗?

您可以使用带有B_Column+".*"glob来仅获取您感兴趣的文件,而不是遍历目录中的每个文件。

import glob
filesmatchingpattern = glob.glob(B_Column+".*")

另请注意,您的代码可能对多点文件名(例如name1.file.txt )行为不端,恕我直言,这将成为name_1.file而不是name_1.file.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM