저는 Python을 처음 접하고 뭔가 알아 내려고합니다. 필자가 작성한 C 코드의 매개 변수 테스트를 수행하기위한 빠른 스크립트를 작성하려고합니다.python의 subprocess.call에서 인수를 사용하여 C 코드를 실행하는 데 문제가 있습니다.
내 C 코드를 실행하기 위해 subprocess.call을 사용하려고 할 때가 왔습니다. C 코드에는 코드 자체 내에서 열린 파일의 이름 인 하나의 인수가 있습니다. 예를 들어
:
filename = myclass.path + myclass.inputname
subprocess.call(["./code", filename])
이 코드를 실행하며, 올바른 파일 이름을 통과하지만, C 코드에서 모든 파일에서 정보의 읽을 수 없습니다. 내가 좋아하는 뭔가를 전달하는 경우 : "파일 이름이"나는 파이썬에서 인쇄 명령을 사용할 때 인쇄되는 것을 실제로 쉘에
./code "filename"
을, 그냥 잘 작동합니다. 무슨 일이 일어나고 있는지
in = fopen(argv[1], "r");
fscanf(in, "%s %d %d", variable1, &variable2, &variable3);
어떤 생각 : 그냥 완전한 존재의 이익을 위해
, 여기 내 C 코드 내 관련이있는 라인은?
은 "filename"이 따옴표와 함께 또는 따옴표없이 인쇄됩니까? 쉘은 제거 할 것이지만 서브 프로세스는 제거하지 않습니다. – mgilson
@mgilson과 동의 :'filename'은 어떻게 생겼습니까? 특수 문자 문제 일 수도 있습니다. (또한 myclass.path + myclass 대신에 ['os.path.join'] (http://docs.python.org/library/os.path.html#os.path.join)을 사용할 수도 있습니다. 입력 이름'). – Dougal
'myclass.path'에 후행 슬래시가 있습니까? 경로와 파일 이름 사이에 슬래시를 추가해야 할 수도 있습니다. –