2012-01-11 2 views
1

popen을 사용하여 하위 프로세스를 만들고 싶습니다. 특별 요구 사항은 명령에서 셸 방향을 사용하는 것입니다.Python - 리디렉션을 사용하여 subprocess.popen 구성

args = [ 
    '/bin/cat', 
    '<', 
    'textfile', 
    ] 
process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, 
          env={'LANG':'[email protected]'}) 
processpid = process.pid 
output = process.communicate() 

나는 그것을 implent하는 방법, 당신 때문에 여기, 쉘 = TRUE 옵션을 사용하여 내 질문을하지 않습니다.

감사 스테판

답변

9

불가능 프로그램 않는 당신이 전화하는거야 구현 재 자체 (cat하지 않습니다). 셸 기능을 사용하려면 shell=True을 전달하거나 명시 적으로 셸을 호출해야합니다.

방금 ​​ textfile에서 읽으려면 OTOH는, 당신은 그것을 전달할 수

서브 프로세스의 stdin :

subprocess.Popen(args, 
       stdin=open("textfile"), 
       stdout=subprocess.PIPE, 
       stderr=subprocess.PIPE, 
       env={'LANG':'[email protected]'}) 
관련 문제