簡體   English   中英

重命名一個已經存在的文件

[英]Rename a file that already exists

我正在學習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
)

下面的代碼遍歷在當前工作目錄中找到的文件,並查找基本文件名及其增量。 一旦找到未使用的增量,它將打開具有該名稱的文件並寫入該文件。 因此,如果您已經擁有文件“ foo.txt”,“ foo1.txt”和“ foo2.txt”,則代碼將創建一個名為“ foo3.txt”的新文件。

import os
filenames = os.listdir()

our_filename = "foo"
cur = 0
cur_filename = "foo"
extension = ".txt"
while(True):
    if (cur_filename) in filenames:
         cur += 1
         cur_filename = our_filename + str(cur) + extension
    else:
         # found a filename that doesn't exist
         f = open(cur_filename,'w')
         f.write(stuff)
         f.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM