2013-04-12 2 views
1

나는 파이썬을 처음 사용했으며 몇 가지 종속적 인 의문의 여지가 있습니다. 나는 어떤 디렉토리로 가서 그 위치에서 뭔가를하고 싶다. 그래서 나는이 같은 시도 :은 파이썬에서 서브 프로세스를 연결했습니다.

q1 = subprocess.Popen('cd ~/Desktop/my_folder', stdout=subprocess.PIPE, shell=True) 
(out1, err) = q1.communicate() 

을 지금은

q2 = subprocess.Popen('ls', stdin=q1.stdout, stdout=subprocess.PIPE, shell=True) 
(out2, err) = q2.communicate() 

를 한 때 Q1 프로세스가 살해되는 것을 의미하므로 내가 전에 어디 난, 난 그냥 원하는 ls 명령을 수행 한 것을보고 q1 과정에서 무언가를 수행하는 법을 아는 것.

답변

1

cd은 약간 특별합니다. 모든 프로세스에는 자체 작업 디렉토리가 있습니다. 따라서 cd ~/Desktop/my_folder에 대한 하위 프로세스를 만들 때 현재 디렉토리는 해당 하위 프로세스 (디렉토리를 변경 한 직후에 종료 됨)에 대해서만 변경됩니다.

상위 프로세스와 하위 프로세스는 영향을받지 않습니다.

디렉토리를 변경하는 가장 쉬운 방법은 os.chdir()을 사용하는 것입니다.

0

Shutil 라이브러리와 관련된 작업을 수행 할 수 있습니다.

관련 문제