명령 및 인수와 함께 python 하위 프로세스를 사용하는 동안 "OSError: [Errno 2] 해당 파일 또는 디렉터리 없음"
다음을 사용하여 파이썬 코드 내에서 시스템 호출을 할 수 있는 프로그램을 실행하려고 합니다.subprocess.call()
그러면 다음 오류가 발생합니다.
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
나의 실제 파이썬 코드는 다음과 같습니다.
url = "/media/videos/3cf02324-43e5-4996-bbdf-6377df448ae4.mp4"
real_path = "/home/chanceapp/webapps/chanceapp/chanceapp"+url
fake_crop_path = "/home/chanceapp/webapps/chanceapp/chanceapp/fake1"+url
fake_rotate_path = "/home/chanceapp/webapps/chanceapp.chanceapp/fake2"+url
crop = "ffmpeg -i %s -vf "%(real_path)+"crop=400:400:0:0 "+ "-strict -2 %s"%(fake_crop_path)
rotate = "ffmpeg -i %s -vf "%(fake_crop_path)+"transpose=1 "+"%s"%(fake_rotate_path)
move_rotated = "mv"+" %s"%(fake_rotate_path)+" %s"%(real_path)
delete_cropped = "rm "+"%s"%(fake_crop_path)
#system calls:
subprocess.call(crop)
이 문제를 해결하는 방법에 대한 관련 조언을 얻을 수 있을까요?
사용하다shell=True
에게 줄을 건네는 것이라면subprocess.call
.
문서에서:
단일 문자열을 전달하는 경우 다음 중 하나입니다.
shell
야 한다.True
그렇지 않으면 문자열은 인수를 지정하지 않고 실행할 프로그램의 이름을 지정해야 합니다.
subprocess.call(crop, shell=True)
또는:
import shlex
subprocess.call(shlex.split(crop))
No such file or directory
파일 인수를 에 넣으려는 경우에도 발생할 수 있습니다.Popen
쌍끌이루어
예:
call_args = ['mv', '"path/to/file with spaces.txt"', 'somewhere']
이 경우 큰따옴표를 제거해야 합니다.
call_args = ['mv', 'path/to/file with spaces.txt', 'somewhere']
투표를 할 수 없어서 좀 더 눈에 띄어야 할 것 같아서 @jfs 댓글을 다시 올리겠습니다.
@AnneTheAgile:shell=True는 필요하지 않습니다.또한 필요한 경우가 아니면 사용하지 마십시오(@valid의 설명 참조).각 명령줄 인수를 별도의 목록 항목으로 전달해야 합니다. 예를 들어 "command 'arg 1' 'arg 2' 대신 ['command' 'arg 1', 'arg 2']를 사용하십시오. - jfs Mar 3 '15' 10:02
언급URL : https://stackoverflow.com/questions/18962785/oserror-errno-2-no-such-file-or-directory-while-using-python-subprocess-wit
'programing' 카테고리의 다른 글
해시로 커밋을 찾는 방법은 무엇입니까? (0) | 2023.06.07 |
---|---|
SQL Server에서 세미콜론을 언제 사용해야 합니까? (0) | 2023.06.07 |
구체적으로, 포크()는 리눅스에서 malloc()에서 동적으로 할당된 메모리를 어떻게 처리합니까? (0) | 2023.06.07 |
ggplot2 상자 그림에서 특이치 무시 (0) | 2023.06.07 |
사용자별로 조건을 충족하는 초기 항목 필터링 (0) | 2023.06.07 |