Problemy z aktywacją konta
Jeśli po zarejestrowaniu się na forum nie otrzymałeś emaila z linkiem do potwierdzenia rejestracji konta skontaktuj się ze mną wysyłając email za pomocą formularza kontaktowego.
Jeśli po zarejestrowaniu się na forum nie otrzymałeś emaila z linkiem do potwierdzenia rejestracji konta skontaktuj się ze mną wysyłając email za pomocą formularza kontaktowego.
[Python] Sortowanie plików.
- AnimaVillis
- Początkujący
- Posty: 5
- Rejestracja: pt 18 lut 2022, 22:47
- Podziękowano : 1 raz
- Kontakt:
#1 [Python] Sortowanie plików.
Witam,
Postanowiłem, że może tutaj ktoś podpowie o bardziej sensownym rozwiązaniu.
Mam sobie skrypt o taki:
Jednakże zastanawiam się czy nie dałoby się jakoś uprościć samej zmiany nazwy miesiąca?
Postanowiłem, że może tutaj ktoś podpowie o bardziej sensownym rozwiązaniu.
Mam sobie skrypt o taki:
Kod: Zaznacz cały
import os
import time
import shutil
import datetime
import glob
from shutil import copytree, ignore_patterns
from shutil import copytree, Error
class ZmianaMiesiaca:
def switch(self, full_month_name):
default = "Błedny miesiąc"
return getattr(self, 'case_' + str(full_month_name), lambda: default)()
def case_01(self):
return str("Styczeń")
def case_02(self):
return str("Luty")
def case_03(self):
return str("Marzec")
def case_04(self):
return str("Kwiecień")
def case_05(self):
return str("Maj")
def case_06(self):
return str("Czerwiec")
def case_07(self):
return str("Lipiec")
def case_08(self):
return str("Sierpień")
def case_09(self):
return str("Wrzesień")
def case_10(self):
return str("Październik")
def case_11(self):
return str("Listopad")
def case_12(self):
return str("Grudzień")
ZM = ZmianaMiesiaca()
os.chdir(r"E:\\")
all_files = list(os.listdir())
outputs = os.getcwd()
for files in all_files:
try:
inputs = glob.glob(files+"\\*")
for ele in inputs:
shutil.move(ele, outputs)
shutil.rmtree(files)
except:
pass
for files in os.listdir('.'):
time_format = time.gmtime(os.path.getmtime(files))
datetime_object = datetime.datetime.strptime(str(time_format.tm_mon), "%m")
full_month_name = datetime_object.strftime(
"%m")
dir_name = str(time_format.tm_year) + '-' + \
ZM.switch(full_month_name)
if not os.path.isdir(dir_name):
os.mkdir(dir_name)
dest = dir_name
try:
shutil.move(files, dest)
except IOError:
print("Brak możliwości skopiowania pliku.")
print("Posortowane...")
[CENTER][/CENTER]
- matrix72001
- Udziela się
- Posty: 53
- Rejestracja: wt 27 lip 2021, 16:26
- Lokalizacja: Konstantynopol
- Podziękował: 2 razy
- Podziękowano : 7 razy
- Kontakt:
#2 Re: [Python] Sortowanie plików.
Wciąż aktualne? Owszem można to uprościć... Zamiast używać klasy z wieloma metodami, można skorzystać z wbudowanej funkcji strftime w Pythonie, która zwraca nazwę miesiąca w danym języku. Poniższy kod zwróci nazwę miesiąca w języku systemowym, więc jeśli Twój system operacyjny jest ustawiony na język polski, zwróci polskie nazwy miesięcy.
Lub ewentualnie metodą locale, bez względu na to z jakiej wersji językowej korzystasz:
Kod: Zaznacz cały
import os
import time
import shutil
import datetime
import glob
from shutil import copytree, ignore_patterns
from shutil import copytree, Error
os.chdir(r"E:\\")
all_files = list(os.listdir())
outputs = os.getcwd()
for files in all_files:
try:
inputs = glob.glob(files+"\\*")
for ele in inputs:
shutil.move(ele, outputs)
shutil.rmtree(files)
except:
pass
for files in os.listdir('.'):
time_format = time.gmtime(os.path.getmtime(files))
datetime_object = datetime.datetime.strptime(str(time_format.tm_mon), "%m")
full_month_name = datetime_object.strftime("%B") # Zwraca pełną nazwę miesiąca w języku systemowym- polskim
dir_name = str(time_format.tm_year) + '-' + full_month_name
if not os.path.isdir(dir_name):
os.mkdir(dir_name)
dest = dir_name
try:
shutil.move(files, dest)
except IOError:
print("Brak możliwości skopiowania pliku.")
print("Posortowane...")
Kod: Zaznacz cały
import os
import time
import shutil
import datetime
import glob
import locale
from shutil import copytree, ignore_patterns
from shutil import copytree, Error
# Ustawienie języka na polski
locale.setlocale(locale.LC_TIME, "pl_PL")
os.chdir(r"E:\\")
all_files = list(os.listdir())
outputs = os.getcwd()
for files in all_files:
try:
inputs = glob.glob(files+"\\*")
for ele in inputs:
shutil.move(ele, outputs)
shutil.rmtree(files)
except:
pass
for files in os.listdir('.'):
time_format = time.gmtime(os.path.getmtime(files))
datetime_object = datetime.datetime.strptime(str(time_format.tm_mon), "%m")
full_month_name = datetime_object.strftime("%B") # Zwraca pełną nazwę miesiąca w języku polskim- niezależnie od systemu
dir_name = str(time_format.tm_year) + '-' + full_month_name
if not os.path.isdir(dir_name):
os.mkdir(dir_name)
dest = dir_name
try:
shutil.move(files, dest)
except IOError:
print("Brak możliwości skopiowania pliku.")
print("Posortowane...")
Utwórz konto lub zaloguj się, aby dołączyć do dyskusji
Musisz być zalogowany, aby opublikować odpowiedź
Utwórz konto
Nie masz konta? Zarejestruj się, aby dołączyć do naszej społeczności
Mając konto moesz zakładać własne tematy i subskrybować interesujące cię wątki
To nic nie kosztuje i zajmuje tylko minutę