2012-08-30 5 views
0

cmd와 같은 프로그램을 열어주는 Python 코드를 만들고 파일 메뉴에서 .txt 파일을 내 보냅니다. 이 코드는 cmd의 경우 다음과 같습니다.Python에서 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 

cmd에서 위의 행은 내가 원하는 것입니다. 파이썬에 상응하는 것은 무엇입니까?

답변

3

이 같은 subprocess.Popen를 참조하십시오

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

또는, 당신은 결과 (표준 출력, 반환 코드)로 얻을하려는 작업에 따라,이 모듈에 subprocess.call, subprocess.call_check, 또는 다른 조각을 사용합니다.

+0

안녕 defuz를,이 특정 명령에 보였다,하지만 난 아직도 어떻게 작동하는지 확실히 모르겠어요. 내가 위의 명령을 어떻게 부릅니까? 편집 : 저것에 의해/출력 : – user1620716

+0

이런 식으로 시도 :'[ "c : \\ ESG \\ Statsvis.exe", "\\\\ 192.16 ... 29.dsf", "/ output = – defuz

+0

프로그램을 여는 데 subprocess.call() 명령을 사용해 보았습니다. 그러나이 프로그램을 사용하려면 " 명령을 실행하는 방법을 아직 확실히 모르겠습니다. 출력 경로와 파이썬이 실행되기 원하는 "param"을 작성하는 적절한 방법은 무엇입니까? – user1620716

0

정확한 쉘/cmd 동작을 원할 경우 호출에서 인수를 shell으로 설정하십시오. 그러나, 문서에서 : 가 신뢰할 수없는 입력과 결합하면

쉘 시스템 쉘을 호출

경고 = 진정한는 보안 위험이 될 수 있습니다. 자세한 내용은 자주 사용되는 인수 아래의 경고를 참조하십시오.

1

또 다른 방법은 os.system()입니다.

import os 
os.system("c:\\ESG\\Statsvis.exe \\192.16...0629.dsf /output=C:\\...\\outfile.txt ...") 
+1

경로의 백 슬래시는이 예제에서 올바르게 해석되지 않습니다. – defuz

+0

이스케이프 된 백 슬래시로 업데이트되었습니다. 수정 해줘서 고마워. –

0

당신이 명령을 사용 하위 프로세스의 출력이 필요한 경우 :

import subprocess 
out = subprocess.check_output("dir c:\ /AD", shell = True) 
관련 문제