[英]How to efficiently rename file names using Python?
我正在尝试基于;;;
重命名文件分隔值。
示例列表是
name1;;;name_1
name2;;;name_2
name3;;;name_3
在目录中,我有诸如name_1.txt
、 name_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.