Извинете за може би елементарния въпрос, но не мога да се справя с един проблем. ОС е Fedora 23. Имам една директория с много поддиректории в които има около 100 хиляди файла .tif или .pdf.
Как да преименувам всички файлове във всички директории, така че във всяка директория файловете да започват от 00001, после 00002 и тн.
Благодаря предварително!!!
Здравей!
Копирай пълния път до директорията, в която са ти файловете и го сложи на мястото на './test/'.
Не забравяй наклонената черта накрая.
Запиши го  като например rename.py и или можеш да го направиш изпълним с chmode +x rename.py с администраторки права за командата и после да го стартираш от терминала, или можеш да го стартираш с python rename.py.
Трябва да имаш права за запис в директорията в която ще ти е скрипта, защот в същата директория ще ти запише и нещо като логфайл.
Дано да ти свърши работа. При теста работи.
Ако не си намерил друг начин. Гледам, че темата е отпреди 4 дена.
Май ще мога и скрипта да прикача
Малка поправка. Нов ред за всеки запис във логфайла, да е по-четимо. Новото име е renamer.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import os.path
from datetime import datetime
ROOT_DIR = "./test/"
def file_rename(path,):
	counter = 0
	with open('rename.log','w') as log_file:
		for root, dirs, files in os.walk(path):
			print(root + '\n')
			log_file.write(root + '\n')
			if files:
				num_files = len(str(len(files)))
				for n, f in enumerate(files, 1):
					old_name = os.path.join(root, f)
					new_name = "{:0>{}d}".format(n, num_files) + \
						os.path.splitext(f)[1]
					file_full_path = os.path.join(root, new_name)
					result = ''
					os.rename(old_name, file_full_path)
					counter += 1
					result = "\tDone: {} ---> {}".format(f, new_name)
					log_file.write(result + '\n')
					print(result)
	return counter
def main():
	start = datetime.now()
	files = file_rename(ROOT_DIR)
	end = datetime.now()
	print("\n\nAll done! " + str(files) + " files renamed in " + str(end - start) + " (h:min:sec).")
	print("Logfile 'rename.log' saved in ./!")
if __name__ == '__main__':
	main()