Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyStok #42 - wystąpią Łukasz Langa i Dominik Kozaczko
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: os. system ('cls') nie działa.  (Przeczytany 169 razy)
« : 15:54 11/06/19 »
Bohun Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 5


Witam.
Jestem laikiem w programowaniu w Pythonie.
Ostatnio natchnęło mnie do napisania jakiegoś programu, ale po zalogowaniu się do menu głównego, nie czyści konsoli.
Nie bijcie za kod Mrugnięcie
Cytuj
import os

def main():
    login()

def login():
    print('SYSTEM LOGOWANIA')
    dane1 = "admin"
    haslo = "admin"
    login = input('Wpisz nazwe uzytkownika: ')
    password = input('Podaj haslo: ')
    if dane1==login and haslo==password:
        print('Witamy w systemie!')
        menu()
    else:
        print('Podales bledne haslo!')

def menu():
    os.system('cls')
    print("************MAIN MENU**************")
    print()
    print('hahaha')

main()
Oto co się wyświetla w konsoli podczas uruchamiania programu
Cytuj
C:\Users\pkpko\PycharmProjects\poczatek\venv\Scripts\python.exe C:/Users/pkpko/PycharmProjects/poczatek/logowanie
SYSTEM LOGOWANIA
Wpisz nazwe uzytkownika: admin
Podaj haslo: admin
Witamy w systemie!
************MAIN MENU**************

hahaha

Process finished with exit code 0
Jakieś sugestie ? próbowałem dosłownie wszystkiego, co znalazłem w necie.
Zapisane
« Odpowiedz #1 : 17:32 11/06/19 »
sig Offline
Professional Python User

Zobacz profil
***

Reputacja: 89
Wiadomości: 431


Jaki system? np dla Linuksa polecenie nie brzmi cls tylko clear. Os.system() służy do wykonywania poleceń w powłoce systemowej (dla Windowsa będzie to cmd), trzeba więc uwzględnić na jakim systemie będziesz uruchamiał ten kod.
Zapisane
« Odpowiedz #2 : 17:33 11/06/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 69
Płeć: Mężczyzna
Wiadomości: 513


Ja mam dwie sugestie  Duży uśmiech
Jedna do hasła:

Kod
from getpass import getpass
       password = getpass("Password: ")
 
Wtedy już czyszczenie nie jest tak niezbędne. A jak chcesz wyczyścić bez możliwości cofnięcia się do tego... To:
Kod
                print("\033[H\033[J", end="")
 
Działa na windowsie, linuxie, macOS, openBSD i interpreterze na Androida. Dalej nie sprawdzałem Uśmiech
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #3 : 19:49 11/06/19 »
Bohun Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 5


Mój system to Windows, dlatego cls używam.
Do pisania PyCharm.
Zapisane
« Odpowiedz #4 : 20:18 11/06/19 »
Bohun Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 5


@Guaz niestety czyszczenie dalej nie działa, sprawdzałem nawet w Python Shell.
Zapisane
« Odpowiedz #5 : 20:59 11/06/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 69
Płeć: Mężczyzna
Wiadomości: 513


 Z czystej ciekawości odpaliłem na virtualboxie kolejno win7 i win8.1, na cmd nie ma problemu.
Na powershellu (6.2 - pod linuxa) również nie ma problemu.

Nie wiem jak z powershellem pod windowsem, bo jest bardziej rozbudowany. Ale skoro nie działa ci 'cls' przewidziany dla windowsa (cmd) ani 'clear' przewidziany dla basha. To zakładam że coś u ciebie nie działa ewidentnie Uśmiech.

Możesz jeszcze spróbować wyrzucić cofnięcie konsoli z manuala ascii: '\f'
Ale to nie zlikwiduje treści, po prostu ją przewinie.

Mniej elegancki sposób który działa zawsze:
Kod
clear_screen = "\n"*10**5
print(clear_screen)

Osobiście go nie polecam, wyrzucenie 100 tyś. linii może spowolnić twój program jak będziesz 'zbyt często odświeżał ekran' Język

I pytanie co rozumiesz przez 'nie działa'.
Czy wyskakuje ci błąd, czy coś się dzieje niepożądanego? (Jeśli błąd, to wrzuć zrzut błędu [stacktrace])
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #6 : 07:21 12/06/19 »
Bohun Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 5


Chodzi oto, że nie czyści konsoli.
Zapisane
« Odpowiedz #7 : 12:41 12/06/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 69
Płeć: Mężczyzna
Wiadomości: 513


Ale co dokładnie się dzieje, tworzy nową linię, przewija, tworzy kilka nowych linii, kompletnie nic się nie dzieje?
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #8 : 19:07 12/06/19 »
Bohun Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 5


Przed ************MAIN MENU************** pokazuje strzałkę w górę.
Zapisane
« Odpowiedz #9 : 19:42 12/06/19 »
raydeal Offline
Expert Python User

Zobacz profil
****

Reputacja: 85
Wiadomości: 503


Jaki Windows? Jak to uruchamiasz?
Jeśli w PyCharmowej konsoli to właśnie tak będzie.

Ja sprawdziłem u siebie na Win10, w CMD, GitCMD i w obu przypadkach działa tak jak chciałeś - konsola jest czyszczona przez 'cls'. Jeśli uruchomisz to w Pycharm to nie będzie działać.
Zapisane
« Odpowiedz #10 : 19:47 12/06/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 69
Płeć: Mężczyzna
Wiadomości: 513


@raydeal Ponoć u @Bohun nie działa nawet w pythonIDE gdzie powinno działać bez problemu.

@Bohun Więc przydatna by była specyfikacja jak poprosił @raydeal

Wyślij też symbol tej strzałki w górę, powinno dać się go przekopiować w wiadomości, albo zamieścić na screenshotcie i wrzucić tutaj.
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #11 : 20:16 12/06/19 »
raydeal Offline
Expert Python User

Zobacz profil
****

Reputacja: 85
Wiadomości: 503


@Guaz masz na myśli IDLE pythonowe?
Jeśli tak to też nie działa. Skrypt @Bohuna z pierwszego wpisu działa prawidłowo tak jak chce tylko pewnie uruchamia go nie tak jak chce Uśmiech
Konsola jakiegokolwiek edytora czy IDE to nie to samo co konsola systemu operacyjnego i komendy które działają mogą nie działać. W skrypcie os.system('cls') działa tylko trzeba ten skrypt uruchomić w konsoli systemowej.
Jeśli @Bohun chciałby czyścić konsole PyCharma albo innego edytora to trzeba to inaczej zrobić (pewnie w zależności od edytora)
Zapisane
« Odpowiedz #12 : 03:28 13/06/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 69
Płeć: Mężczyzna
Wiadomości: 513


Tak, zjadłem 'L' i wyszło przekłamanie  Duży uśmiech

Co do edytorów, nie wypowiem się jako że nie sprawdzałem, niestety/stety korzystam z wbudowanych systemowych Uśmiech
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot