Я пытаюсь переименовать несколько файлов в каталоге с помощью Python, но счетчик внутри цикла никогда не обновляется, поэтому я получаю ошибку «файл уже существует».
Как получить обновленную переменную (i), чтобы имя файла никогда не повторялось?
def change_name():
for i, filename in enumerate(glob.glob(current_dir + '\packettest.txt')):
os.rename(filename, os.path.join(current_dir, 'packettest_sent' + str(i) + '.txt' ))
i = i + 1
Это ошибка, которую я получаю:
os.rename(filename, os.path.join(current_dir, 'packettest_sent' + str(i) + '.txt' ))
WindowsError: [Error 183] Cannot create a file when that file already exists
РЕДАКТИРОВАТЬ:
Благодаря вашим комментариям я понимаю, что делает перечисление, но проблема сохраняется, я все еще равен 0. Это мой полный код:
import os.path
import sys
import glob
import time
current_dir = os.getcwd()
file_path = current_dir + "\packettest.txt"
#def main():
def change_name():
for i, filename in enumerate(glob.glob(current_dir + '\packettest.txt')):
os.rename(filename, os.path.join(current_dir, 'packettest_sent' + str(i) + '.txt' ))
def packet_listener():
while not os.path.exists(file_path):
time.sleep(1)
print "waiting..."
if os.path.isfile(file_path):
# read file
change_name()
time.sleep(1)
packet_listener()
print "OK"
else:
raise ValueError("%s isn't a file!" % file_path)
if __name__ == '__main__':
packet_listener()
Спасибо за продвижение.
PS: извините за мой плохой английский