• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tydzień w Pythonie

Object Storage Arubacloud
+1 głos
309 wizyt
pytanie zadane 27 grudnia 2018 w Nasze projekty przez Kuba Jankowski Początkujący (300 p.)

Witam,

Jako że zakończyłem pierwszy tydzień nauki Pythona, to chciałbym abyście ocenili jeden z moich ostatnich projektów. Kod zamieszczam poniżej.

import os

while 1==1:
 print("--------------------------------------------------------------------")
 files = os.listdir(".")
 print("")
 print("")
 for item in files:
     if os.path.isfile(item):
        print("{}     JEST PLIKIEM".format(item))

     if os.path.isdir(item):
        print("{}     JEST FOLDEREM".format(item))
 print("")
 print("")
 print("....::::MENU::::....")
 print("1. Stwórz folder w lokalizacji")
 print("2. Usuń folder")
 print("3. Usuń plik")
 print("4. Zmień nazwę elementu")
 print("5. Napisz coś w pliku tekstowym")
 print("")
 choice = input("Wybór działania:    ")

 if choice=="1":
     print("")
     dir_name = input("Podaj nazwę: ")
     os.mkdir(dir_name)
     print("")
     print("Pomyślnie utworzono folder o nazwie", dir_name)


 if choice=="2":
     print("")
     deldir_name = input("Podaj nazwę: ")
     os.removedirs(deldir_name)
     print("")
     print("Pomyślnie skasowano folder o nazwie", deldir_name)

 if choice=="3":
     print("")
     delfile_name = input("Podaj nazwę: ")
     os.remove(delfile_name)
     print("")
     print("Pomyślnie skasowano plik o nazwie", delfile_name)

 if choice=="4":
     print("")
     old_name = input("Podaj nazwę elementu: ")
     new_name = input("Podaj nową nazwę elementu: ")
     os.renames(old_name,new_name)
     print("")
     print("Pomyślnie zmieniono nazwę", old_name,"na",new_name)

 if choice=="5":
     print("")
     open_name = input("Podaj nazwę pliku tekstowego: ")
     print("")
     file_text = input("Podaj tekst do wpisania: ")

     f = open(open_name, "a+")
     f.write(file_text)
     f.close()
     print("Pomyślnie wpisano tekst do pliku")

W miarę dobrze jak na tydzień czy coś poprawić? Z góry dziękuję

2 odpowiedzi

+1 głos
odpowiedź 27 grudnia 2018 przez NIMuser Stary wyjadacz (11,030 p.)
Ogólnie OK, ale stosuj się do zasady DRY. Za dużo powtarzającego kodu jest u Ciebie.

Zamiast if choice itd zastosuj konstrukcję if elif elif.....else. Chociaż tu użyłbym po prostu funkcji.

Zamiast while 1==1 napisz while True:    <- lepiej tak ;)

Zamiast open...... write..... close zapisz tak:

with open(file_name, "a+") as my_file:

      my_file.write(text)

Python sam zamknie plik.

Poza tym brakuje obsługi błędów (konstrukcje try....except...itd.) - a przy operacjach I/O to podstawa
komentarz 27 grudnia 2018 przez Kuba Jankowski Początkujący (300 p.)
Dzięki bardzo za odpowiedź. Wiesz, trzeba zaznaczyć, że 7 dni to mało by ogarnąć się w tak potężnym języku. Zastosuje się do twoich rad, aczkolwiek konstrukcji except nawet nie ruszyłem. Moduł os to taki szczyt moich aktualnych umiejętności. Jeszcze raz dziękuję i miłego wieczoru ;)
komentarz 27 grudnia 2018 przez NIMuser Stary wyjadacz (11,030 p.)
Nie ma za co dziękować, forum jest po to żeby sobie pomagać.

Tu jest dość dobrze wytłumaczona obsługa błędów: https://www.tutorialspoint.com/python3/python_exceptions.htm

Jeszcze zamieniłbym w "menu" wybór (choice) na typ int i porównywał liczby zamiast stringów.
0 głosów
odpowiedź 27 grudnia 2018 przez profesorek96 Szeryf (91,420 p.)
To co kolega niżej zasada DRY się kłania oraz proponował bym rozbić program na funkcję.

Podobne pytania

0 głosów
0 odpowiedzi 197 wizyt
pytanie zadane 18 listopada 2021 w Nasze projekty przez doskanoness Obywatel (1,240 p.)
+2 głosów
2 odpowiedzi 378 wizyt
+1 głos
3 odpowiedzi 1,238 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...