У меня небольшая проблема с инструментом, который я создал в Python.
Этот инструмент работает для классификации файлов по именам файлов и создания папок по слову в каждом имени файла, а затем перемещает все файлы в соответствующую папку.
Файлы:
09052019_6_filetype1_currenttime_randomnumber.xml
09052019_2_filetype2_currenttime_randomnumber.xml
09052019_9_filetype3_currenttime_randomnumber.xml
09052019_1_filetype3_currenttime_randomnumber.xml
09052019_1_filetype3_currenttime_randomnumber.xml
Фактические результаты:
- filetype1_Status_6 (папка)
09052019_6_filetype1_currenttime_randomnumber.xml
- filetype2_Status_2 (папка)
09052019_2_filetype2_currenttime_randomnumber.xml
- filetype3_Status_9 (папка)
09052019_9_filetype3_currenttime_randomnumber.xml
- filetype3_Status_1 (папка)
09052019_1_filetype3_currenttime_randomnumber.xml
09052019_1_filetype3_currenttime_randomnumber.xml
Кодовая версия 1.0
#!/usr/bin/python3
# v1.0
# Importing modules
import os
import shutil
import sys
# Path of input and output files
src = input('Input files: ')
dest = input('Destination files: ')
os.chdir(dest)
def classify():
for f in os.listdir(src):
splitname = f.split('_')
status = splitname[1]
topic = splitname[2]
foldername = topic + '_' + 'Status_' + status
if not os.path.exists(foldername):
os.mkdir(foldername)
shutil.move(os.path.join(src, f), foldername)
print('Sorting out files, please wait...')
classify()
print('¡DONE!')
Улучшение
Но в v2.0 я хотел бы немного «улучшить» его, просто сохранив то же удобство использования, но изменив имена файлов с исходного имени на «Message _ *. Xml», и это работает, но перемещая только один файл, а не все из них.
Текущие результаты:
- filetype1_Status_6 (папка)
- filetype2_Status_2 (папка)
- filetype3_Status_9 (папка)
- filetype3_Status_1 (папка)
Ожидаемые результаты:
- filetype1_Status_6 (папка)
- filetype2_Status_2 (папка)
- filetype3_Status_9 (папка)
- filetype3_Status_1 (папка)
- Message_.xml
- Message_1.xml
Кодовая версия 2.0
#!/usr/bin/python3
# v2.0
# Importing modules
import os
import shutil
import sys
# Path of input and output files
src = input('Input files: ')
dest = input('Destination files: ')
os.chdir(dest)
def classify():
for f in os.listdir(src):
splitname = f.split('_')
status = splitname[1]
topic = splitname[2]
foldername = topic + '_' + 'Status_' + status
newFileName = foldername + '\\' + 'Message_' + '.xml'
if not os.path.exists(foldername):
os.mkdir(foldername)
shutil.copy(os.path.join(src, f), newFileName)
print('Sorting out files, please wait...')
classify()
print('¡DONE!')