大家好,一个精打细算的业余爱好者。为了简化文件删除过程(文件夹中超过700个单元),有一个代码,其中创建逻辑很复杂,可以将文件夹中的两个文件与开头的类似名称进行比较,并删除标记为17的文件并保留一个其中包括18个。 文件夹中的文件示例(ap_txap180101.jwl; bh_txbh171002.jwl; bh_txbh180101.jwl; dp_txdp170101.jwl ...等)。正如所见,有两个文件具有相同的开头“bh_txbh”,但不同的唯一编号为17和18.什么是比较名称字符串的方法,并应用于删除仅包含17的文件。对于文件夹中的其他文件也是一样的,它们具有相同的一对,但如所描述的那样彼此不同。
有一个代码,我徒劳地试图为这项任务撰写。很高兴听到想法。如我所想,它可以用于过滤关于名称的旧内容。
import os
import re
dir_name = "/Python/Schems"
testfolder = os.listdir(dir_name)
regex = re.compile(r'^[1-9\w]{2}_[1-9\w]{4}[1][7][\d\w]+\.[\d\w]+')
compare = re.search.startswitch(r'^[1-9\w]{2}_[1-9\w]{4}[1][8]+', testfolder)
for ff in testfolder:
k1 = regex.match(ff)
k2 = compare.match(ff)
if k1 == None:
if k2 == compare:
continue
os.remove(os.path.join(dir_name, ff))