Python을 사용하여 일부 인수와 함께 Mencoder를 호출합니다
문제
나는 내가 파이썬을 아주 새롭고 아주 새로운 것이라고 말하면서 시작하겠습니다.
예전에는 매개 변수 세트가있는 Mencoder를 시작하기 위해 Windows/DOS 배치 파일을 가지고 있었으며 매일 매개 변수를 입력하지 않고도 매개 변수를 입력 할 필요가 없었습니다.
스크립트를 개선하려고 할 때 상황이 지저분 해졌고 파이썬으로 무언가를 코딩 할 수있는 좋은 기회가 될 것이라고 결정했습니다.
나는 그것을 생각해 냈다 :
#!/usr/bin/python
import sys, os
#Path to mencoder
mencoder = "C:\Program Files\MPlayer-1.0rc2\mencoder.exe"
infile = "holidays.avi"
outfile = "holidays (part1).avi"
startTime = "00:48:00"
length = "00:00:15"
commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))
#Pause
raw_input()
그러나 그것은 작동하지 않으며 Windows는 "C : Program"이 인정되지 않은 명령이 아니라고 불평합니다.
나는 여기저기서 "" "를 넣으려고 노력했지만 도움이되지 않았습니다.
해결책
Python에는 "그리고 '와'는 완전히 동일합니다. 문자열에서 인용문을 얻는 가장 쉬운 방법은 '" "C : Program Files mplayer-1.0rc2 mencoder.exe"라고 말하는 것입니다.
원시 접두사 (예 : R ' "C : Program Files Mplayer-1.0rc2 mencoder.exe"')를 사용하는 것이 좋습니다. 탈출 코드입니다. 따라서 원래 문자열은 R을 앞에 놓아서 전혀 변경되지 않습니다.
다른 팁
Windows에서 수행하는 경우 하나 대신 두 개의 따옴표를 사용하십시오.
"\\"
나는 Python을 처음 접했지만 그 문제를 볼 때, 문제를 해결하기 위해 파일 (실행 가능 또는 인수)은 인용문에 있어야합니다. 그냥 추가하십시오 \" 명령 줄 인수를 구별하기 위해 공간이 포함 된 파일 전후. 따라서 이는 Outfile 변수에도 적용됩니다. 코드는 이렇게 보일 것입니다 ...
#!/usr/bin/python
import sys, os
#Path to mencoder
mencoder = "\"C:\Program Files\MPlayer-1.0rc2\mencoder.exe\""
infile = "holidays.avi"
outfile = "\"holidays (part1).avi\""
startTime = "00:48:00"
length = "00:00:15"
commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))
#Pause
raw_input()
mencoder.exe를 이름 안에 공간 숯이없는 디렉토리에 넣을 수도 있습니다 (프로그램 파일에 반대).