경로에 공백이 있는 Python에서 외부 프로그램 실행
Python에서는 os.system 함수를 사용하여 외부 프로그램을 실행할 수 있습니다. 그러나 공백이 포함된 경로로 프로그램을 실행하면 문제가 발생할 수 있습니다. 이 문서에서는 문제를 살펴보고 하위 프로세스 모듈을 사용하여 솔루션을 제공합니다.
os.system의 과제
os.system 함수는 입력 문자열을 다음 명령으로 해석합니다. 쉘에 의해 실행됩니다. 프로그램 경로에 공백이 있으면 셸은 이를 명령 구분 기호로 해석하여 "명령을 찾을 수 없습니다."와 같은 오류가 발생할 수 있습니다.
이스케이프를 사용하여 공백 처리
때로는 큰따옴표로 프로그램 경로를 이스케이프하면 문제가 해결될 수 있습니다. 그러나 명령에 추가 매개변수를 추가하면 다시 중단될 수 있습니다.
같은 따옴표, 다른 구문
프로그램 경로를 구분할 때 작은따옴표와 큰따옴표를 교환합니다(예: "'C:Tempa b cNotepad.exe'")는 문제를 해결하지 못하며 "파일 이름 구문이 잘못되었습니다." 오류가 발생할 수 있습니다.
하위 프로세스 입력
하려면 쉘 이스케이프의 복잡성을 피하기 위해 subprocess 모듈은 보다 강력한 솔루션을 제공합니다. subprocess.call 함수는 문자열이 아닌 인수 목록을 사용합니다. 인수는 목록 내의 공백으로 쉽게 구분됩니다.
하위 프로세스를 사용하는 샘플 스크립트
다음 스크립트는 하위 프로세스를 사용하여 매개변수로 메모장을 실행합니다.
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
이 스크립트는 메모장을 올바르게 실행하고 경로의 공백으로 인한 구문 문제가 발생하지 않고 완료될 때까지 기다립니다.
위 내용은 Python에서 경로에 공백이 있는 외부 프로그램을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!