Я использую скрипт на python, с помощью которого другие парни помогли мне переименовать все файлы .jpg или .png в каталоге в любое, что я хочу, по порядку.
Поэтому, если у меня есть 20 файлов .png в каталоге, я хочу переименовать их в порядке от 1 до 20.
Сценарий, который я имею, ДЕЛАЕТ это, и я счастлив этим. Однако только что было указано, что файлы, которые я переименовал с помощью этого сценария, вышли из строя.
Например, когда я переименовываю 1.png в testImage1.png, я действительно переименовываю testImage10.png в testImage1.png. Я проверил это с помощью своего скрипта, создав 5 текстовых файлов с одинаковым содержимым, но текстовые файлы 1-3 я помещаю в другой контент, чтобы отслеживать, что есть что после того, как я переименовал. Конечно же, все смешалось.
import os
import sys
source = sys.argv[1]
files = os.listdir(source)
name = sys.argv[2]
def rename():
i = 1
for file in files:
os.rename(os.path.join(source, file), os.path.join(source, name+str(i)+'.png'))
i += 1
rename()
Я потратил время, чтобы попытаться использовать свои (ограниченные) знания Python, чтобы создать серию операторов if / elif для просеивания и переименования файлов с правильным именем по порядку.
def roundTwo():
print('Beginning of the end')
i = 1
for root, dirs, files in os.walk(source):
for file in files:
print('Test')
if source == 'newFile0.txt' or 'newFile0.png':
os.rename(os.path.join(source, file), os.path.join(source, name+str(i)+'.txt'))
print('Test1')
i += 1
elif source == 'newFile1.txt' or 'newFile1.png':
os.rename(os.path.join(source, file), os.path.join(source, name+str(i)+'.txt'))
print('Test2')
i += 1
roundTwo()
Я выполнил немало поисков, чтобы включить использование Re или fnmatch, но ничто не сравнится с тем, что я собираюсь сделать. Возможно, я использую неправильные термины для поиска? Любое понимание помогает!