>  기사  >  백엔드 개발  >  Python에서 경로에 공백이 있는 외부 프로그램을 실행하는 방법은 무엇입니까?

Python에서 경로에 공백이 있는 외부 프로그램을 실행하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 12:07:30689검색

How to Execute External Programs with Spaces in Path from Python?

경로에 공백이 있는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.