или же

чаю 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: В настоящее время сценарий находит «7526/2016» в .txt по регулярному выражению. Удалить "/". Переименуйте файл с «75262016» + случайное число (пример: 7526016_111). Вместо переименования с использованием случайного числа, я хотел бы проверить, существует ли файл, и переименовать его с приращением (пример: 7526016_copy1, 7526016_copy2)

 locus2k21 нояб. 2017 г., 19:12
Этот пост может объяснить, как проверить, существует ли файл в Python.stackoverflow.com/questions/82831/...
 user865175521 нояб. 2017 г., 19:24
Было бы полезно, если бы вы могли показать содержимое одного из файлов вTXT каталог.

Ответы на вопрос(2)

Решение Вопроса

Заменить:

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
)
 matt22 нояб. 2017 г., 00:54
THANKSS !!!!!!!!

найденные в текущем рабочем каталоге, и ищет базовое имя файла и его приращения. Как только он находит неиспользованное приращение, он открывает файл с этим именем и записывает в него. Поэтому, если у вас уже есть файлы "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()
 user865175521 нояб. 2017 г., 19:17
Способ проверить, существует ли файлos.path.exists(path) или жеos.path.isfile(path).

Ваш ответ на вопрос