Переименовать файлы в каждой подстановочной папке по размеру - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь переименовать файлы меньшего размера в каждой подпапке.Пути к папкам выглядят так:

C:\Users\user\Documents\Requests\*\dir\*\.txt

До сих пор я выяснил, как переименовать файлы меньшего размера, указав основную папку и подпапку, но у меня слишком много папок, и мне было интересно, есть ли способчтобы переименовать их все сразу, используя подстановочные знаки.

Это то, что я имею до сих пор:

import os
import glob

directory = C:\Users\user\Documents\Requests\MainFolder-timestamp\dir\Subfolder-timestamp\file-timestamp.txt
list = glob.glob(directory)
small_list = []
pairs = []

for file in list:
    location = os.path.join(directory, file)
    size = os.path.getsize(location)
    pairs.append((size, file))
    pairs.sort(key=lambda, s: s[0])

for pair in pairs:
    small_list.append(pair[1]

if 'test' in small_list[-1]:  # remove 'test' string from the biggest file
    biggest_file = small_list[-1]
    os.rename(biggest_file, biggest_file.replace('test', ''))

small_list = small_list[:-1]
for filename in small_list:
    if filename.endswith('txt'):
        os.rename(filename, filename[:-4] + '.txtsmall')

print('Files have been successfully renamed.')
...