[Python] Wynik z wiersza poleceń (windows)
Ostatnio zmodyfikowano 2018-11-02 18:34
Jah00 Temat założony przez niniejszego użytkownika |
[Python] Wynik z wiersza poleceń (windows) » 2018-10-31 21:38:58 Witam, piszę pewien program w pythonie i potrzebuję dostać uniwersalną (uniwersalną, chodzi mi o to że po odpaleniu programu na innym sprzęcie program pobierze właściwą ścieżkę dla danego komputera) ścieżkę do folderu appdata. Z pomocą internetu udało mi się napisać coś takiego: import subprocess
out = subprocess.Popen([ 'echo', '%appdata%' ], shell = True, stdout = subprocess.PIPE ) stdout = out.communicate() print( stdout )
Co zwraca: ( b 'C:\\Users\\jm\\AppData\\Roaming\r\n', None )
Mam kilka pytań co do tego, 1. Czy jest jakaś prostsza metoda na uzyskanie wyniku z cmd do zmiennej? 2. Co oznaczają i dlaczego występują te znaki na końcu i na początku (np. b', \r, None)? 3. W jaki sposób wyodrębnić tą ścieżkę od tych znaków, pamiętając że jej długość może być różna (np. zależy od wersji językowej lub nazwy użytkownika), w pythonie jestem nowy i jedyne co znam to wyodrębnienie za pomocą [liczba:liczba] jednak tu nie pomoże. |
|
Jah00 Temat założony przez niniejszego użytkownika |
Rozwiązanie » 2018-11-02 18:34:08 Poradziłem sobie z problemem, użyłem prostszej funkcji run() (działa w pythonie od 3.5 w górę), która po rozkodowaniu na utf-8 zwraca czystą ścieżkę w formacie str. import subprocess
x = subprocess.run([ 'echo', '%appdata%' ], shell = True, stdout = subprocess.PIPE ).stdout.decode( 'utf-8' ) print( x )
Co zwraca : C:\U sers\jm\AppData\Roaming Zamykam, napisałem rozwiązanie, może komuś się przyda. |
|
« 1 » |