Chcę dokonać kodu Pythona, który otworzy program taki jak CMD, a następnie wyeksportuj plik .txt z menu Plik. Kod wygląda na to dla CMD:

c:\ESG\Statsvis.exe \\192.168.100.222\c\ESG\S1-424\2012\06\29\S1-42420120629.dsf /output=C:\Users\jessica.macleod\Desktop\outfile.txt /param=RMS Amplitude

W CMD powyższa linia robi dokładnie to, czego chcę. Jaki byłby odpowiednik dla Pythona?

0
user1620716 30 sierpień 2012, 20:07

4 odpowiedzi

Najlepsza odpowiedź

Zobacz subprocess.popen, podobnie:

subprocess.Popen(["/bin/ls", "-l"]

Lub, w zależności od tego, co chcesz uzyskać w wyniku czego (stdout, kod powrotu), użyj subprocess.call, subprocess.call_check lub innych fragmentów w tym module.

3
defuz 30 sierpień 2012, 16:16

Innym sposobem byłoby OS.System () <).

import os
os.system("c:\\ESG\\Statsvis.exe \\192.16...0629.dsf /output=C:\\...\\outfile.txt ...")
1
Ansgar Wiechers 30 sierpień 2012, 16:39

Jeśli chcesz mieć dokładne zachowanie powłoki / cmd, ustaw argument shell do True w połączeniu suprocess.Popen(). Jednak z dokumentacji:

Ostrzeżenie

Wywołanie powłoki systemu z powłoką = true może być zagrożeniem bezpieczeństwa, jeśli w połączeniu z niezaufującym wejściem. Zobacz ostrzeżenie w ramach często używanych argumentów na szczegóły.

0
Dr. Jan-Philip Gehrcke 30 sierpień 2012, 16:18

Jeśli potrzebujesz wyjścia komendy Subprocess:

import subprocess
out = subprocess.check_output("dir c:\ /AD", shell = True)
0
Guy 12 kwiecień 2013, 22:34