Jak możemy współpracować z powłoką systemu operacyjnego za pomocą Pythona? Chcę uruchomić polecenia Windows cmd przez pythona. Jak można to osiągnąć?Uruchamianie poleceń powłoki systemu Windows za pomocą pythona
Odpowiedz
nowsze subprocess.check_output
i podobne polecenia mają zastąpić os.system
. Aby uzyskać szczegółowe informacje, patrz this page. Chociaż nie mogę przetestować to na Windows, poniższe powinno działać:
from subprocess import check_output
check_output("dir C:", shell=True)
check_output
zwraca ciąg wyjściu z Twojego polecenia. Alternatywnie, subprocess.call
po prostu uruchamia polecenie i zwraca status polecenia (zwykle 0, jeśli wszystko jest w porządku).
Należy również zauważyć, że w pythonie 3 ten ciąg wyjściowy jest teraz wyjściowy bytes
. Jeśli chcesz to zmienić na ciąg znaków, trzeba coś takiego
from subprocess import check_output
check_output("dir C:", shell=True).decode()
razie potrzeby you can tell it rodzaju kodowanie wyjścia programu. Wartość domyślna to utf-8
, która zazwyczaj działa dobrze, ale inne standardowe opcje to here.
Działa to w systemie Windows 7. Dzięki. Zwraca \ r \ n na końcu łańcucha, więc może być konieczne usunięcie go z podciągu '[0: -2]'. –
Używanie '[0: -2]' w tym celu denerwuje mnie. Jeśli ktokolwiek podejmie ten kod, aby zastosować go w kontekście innym niż Windows, z pewnością zmieni oczywiste 'dir C:' na 'ls' lub cokolwiek innego. Ale mogą z łatwością nie zdawać sobie sprawy, że '[0: -2]' należy zmienić na '[0: -1]'. Zalecałbym zamiast tego ['.rstrip()'] (https://docs.python.org/2/library/stdtypes.html#str.rstrip), który działałby na dowolnej platformie (chyba że chcesz przechwycić inne ciągłe białe znaki), a także sprawia, że przyczyna zmiany ciągów jest jaśniejsza. – Mike
@Mikw: Mam polecenie Windows, które jest używane do wdrażania. Wystarczy pojedyncza linia poleceń. Jak mogę wywołać to z zewnętrznego skryptu python3.4? –
Można użyć modułu os system method.
Wystarczy umieścić w formie łańcucha polecenia, zwracana jest wartość zmiennej okna enrivonment COMSPEC
Na przykład:
os.system („python”) otwiera okna wiersza polecenia i uruchamia interpreter Pythona
import subprocess
result = []
win_cmd = 'ipconfig'(curr_user,filename,ip_address)
process = subprocess.Popen(win_cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for line in process.stdout:
print line
result.append(line)
errcode = process.returncode
for line in result:
print line
Refaktoryzacja odpowiedzi @ srini-beerge, która pobiera dane wyjściowe i kod zwrotny
import subprocess
def run_win_cmd(cmd):
result = []
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for line in process.stdout:
result.append(line)
errcode = process.returncode
for line in result:
print(line)
if errcode is not None:
raise Exception('cmd %s failed, see above for details', cmd)
Można użyć pakietu subprocess
z kodem jak poniżej:
import subprocess
cmdCommand = "python test.py" #specify your cmd command
process = subprocess.Popen(cmdCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
print output
- 1. Uruchamianie witryny za pomocą wiersza poleceń Windows
- 2. Uruchamianie poleceń systemu Windows plik wsadowy asynchronicznie
- 3. Uruchamianie poleceń powłoki za pomocą kodu Java na Androida?
- 4. Uruchamianie skryptu Pythona jako usługi systemu Windows
- 5. Uruchamianie Pythona z virtualenv za pomocą Apache/mod_wsgi, na Windows
- 6. Automatyczne uruchamianie usługi systemu Windows przy instalacji
- 7. Uruchamianie plików jar z Pythona
- 8. tworzenie wygaszacza ekranu systemu Windows za pomocą Pythona?
- 9. Jakie języki pisać rozszerzenia powłoki systemu Windows
- 10. Uruchamianie interpretera wiersza poleceń Pythona wewnątrz PyDev
- 11. Konwersja plików z systemu Windows do systemu UNIX za pomocą powłoki Powershell lub Batch
- 12. Python: Czy można zmienić bieżący katalog powłoki wiersza poleceń systemu Windows bez zmiany bieżącego katalogu bieżącego?
- 13. Czy można edytować plik binarny za pomocą wiersza poleceń systemu Windows?
- 14. Wyszukiwanie pulpitu systemu Windows za pomocą C#
- 15. Wycisz głośność systemu Windows za pomocą C#
- 16. Zamykanie systemu Windows za pomocą Javy
- 17. Wykryj wersję systemu Windows za pomocą JavaScript
- 18. Uruchamianie R z wiersza polecenia systemu Windows
- 19. Uruchamianie aplikacji WPF jako usługi systemu Windows
- 20. uruchamianie poleceń potoku bash w tle za pomocą & ampersand
- 21. Uruchamianie poleceń cmd z prawami administratora
- 22. Iterowanie za pomocą punktów podłączenia za pomocą Pythona
- 23. Logi wiersza poleceń systemu Windows do pliku
- 24. Interfejs wiersza poleceń systemu Windows 8 Simulator
- 25. Jak uzyskać przyjazną nazwę systemu operacyjnego za pomocą Pythona 2.5?
- 26. Uruchamianie rodzimych poleceń Windows (np. VOL) z Cygwin
- 27. Zintegruj Qt z paskiem zadań Windows 7 za pomocą pythona?
- 28. Uruchamianie programu PowerPoint Viewer z wiersza poleceń w systemie Windows
- 29. Uruchamianie uniwersalnych aplikacji systemu Windows 10 w systemie Windows 8.1
- 30. Co robi "uruchamianie/zatrzymywanie powłoki adb"?
Related: [ Czy możliwe jest użycie Pythona jako zamiennika powłoki?] (Http://programmers.stackexchange.com/q/182077) –