을 제공합니다. 즉, PC에서 실행하면 모든 것이 정상입니다 (ls -l은 3 개의 dir : a, b 및 c를 제공합니다). 하지만 동료가 데스크톱에서 실행하면 {{a, b, c} '라는 하나의 dir이 생깁니다 ... 둘 다 Python 2.7.3을 사용합니다. 왜 그런가요? 어떻게 고칠 수 있니?subprocess.Popen 내가 코드의 간단한 조각을 썼다 임의 결과를
나는 혼자 답변을 찾으려고 노력했다. manual에 따라 : "args는 프로그램 인수의 시퀀스이거나 다른 단일 문자열이어야합니다. 기본적으로 args가 시퀀스 인 경우 args의 첫 번째 항목이 실행될 프로그램입니다. args가 문자열이면 해석은 플랫폼에 따라 다릅니다. 아래에 설명되어 있습니다. 기본 동작과 다른 점에 대해서는 셸 및 실행 인수를 참조하십시오. 달리 명시되지 않는 한 args를 시퀀스로 전달하는 것이 좋습니다. "
은 그래서 쉘 코드를 실행하려고 :python -c "import subprocess; p=subprocess.Popen(['mkdir', '-p', './{ea,fa,ga}'], shell=True, stderr=subprocess.STDOUT); p.wait()"
그리고 내가 가지고 :
이mkdir: missing operand
내가 어떤 조언
감사를위한 감사합니다!
귀하와 귀하의 동료는 어떤 운영 체제를 실행하고 있습니까? 두 경우 모두 리눅스, 당신은 어떤 쉘을 사용하고 있습니까? –
다른 쉘은 다른 결과를 줄 수 있습니다. – dilbert
중복 http://stackoverflow.com/questions/16029871/how-to-run-os-mkdir-with-p-option-in-python – endragor