我正在学习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)
答案 0 :(得分:0)
替换:
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
)
答案 1 :(得分:-1)
下面的代码遍历当前工作目录中找到的文件,并查看基本文件名及其增量。一旦找到未使用的增量,它就会打开一个具有该名称的文件并写入该文件。因此,如果您已经拥有文件“foo.txt”,“foo1.txt”和“foo2.txt”,则代码将生成一个名为“foo3.txt”的新文件。
const engine = new Chess();