【发布时间】:2020-12-10 03:37:26
【问题描述】:
假设我有一个变量名为main_dir 的目录。在这个文件夹中,我有多个文件,包括Revised Workshop FINAL.docx、R1 Big Presentation. July 23, 2020.pptx 和Results. NEW - R1 Presentation. July 28, 2020.pdf。还有更多文件,但我想做的主要事情是遍历我的main_dir 文件夹,查看每个文件名,如果它包含列表中的子字符串(bad_list = [" ", ".", "-", "&", ",", "___", "__"]),我想用"_" 替换该子字符串.我正在尝试编写一个快速函数来执行此操作,但它比最初看起来更难。这是我到目前为止所得到的:
def filename_replacer(file_name):
bad_list = [".", "-", "&", ",", "___", "__"]
new_name = file_name.replace(" ", "_")
for item in bad_list:
new_name = new_name.replace(item, "_")
return new_name
然后我会在这样遍历目录时应用它:
for subdir, dirs, files in os.walk(new_dir_path):
for filename in files:
print(filename)
new_name = filename_replacer(filename)
os.rename(filename,new_name)
这可行,但不是理想的解决方案;有没有更有效的方法来做到这一点?
【问题讨论】:
-
这能回答你的问题吗? Python Regex Sub with Multiple Patterns
标签: python-3.x loops replace substring