我正在学习 python 和英语。我有一个问题可能很容易,但我无法解决。我有一个 .txt 的文件夹,我能够通过正则表达式提取每个数字的序列。我用从 .txt 中提取的序列重命名每个文件
path_txt = (r'''C:\Users\user\Desktop\Doc_Classifier\TXT''')
for TXT in name_files3:
with open(path_txt + '\\' + TXT, "r") as content:
search = re.search(r'(([0-9]{4})(/)(([1][9][0-9][0-9])|([2][0-9][0-9][0-9])))', content.read())
if search is not None:
name3 = search.group(0)
name3 = name3.replace("/", "")
os.rename(os.path.join(path_txt, TXT),
os.path.join("Processos3", name3 + "_" + str(random.randint(100, 999)) + ".txt"))
我需要检查文件是否已经存在,并通过添加一个增量来重命名它。目前为了区分文件,我在名称中添加了一个随机数 (random.randint(100, 999))
PS:目前脚本通过正则表达式在 .txt 中查找“7526/2016”。去除 ”/”。使用“75262016”+ 随机数重命名文件(例如:7526016_111)。我不想使用随机数重命名,而是想检查文件是否已经存在,并使用增量重命名(例如:7526016_copy1、7526016_copy2)
请您参考如下方法:
替换:
os.rename(
os.path.join(path_txt, TXT),
os.path.join("Processos3", name3 + "_" + str(random.randint(100, 999)) + ".txt")
)
与:
fp = os.path.join("Processos3", name3 + "_%d.txt")
postfix = 0
while os.path.exists(fp % postfix):
postfix += 1
os.rename(
os.path.join(path_txt, TXT),
fp % postfix
)
