2012-08-31 2 views
1

나는 python (scrapy) 작업을하고 있는데, os 모듈을 사용하여 폴더에 들어가려고 노력 중입니다.하지만 다음을 시도 할 수 없습니다.리눅스에서 파이썬 코드를 통해 폴더에 들어가는 방법

import os 

scrapepath = "cd /home/local/username/project/scrapy/modulename" 

os.system(scrapecmd) 

는 결과 :

0 

마지막으로 내 의도는 내가 위에서 언급 한 바와 같이 파이썬 코드를 통해 (리눅스 홈 예를 들어) 몇 곳에서 폴더 (대상)에 입력하는 것입니다. 여기에 실제로 동적으로 위의 경로의 일부를 생성하고 그 후에 해당 경로에 들어가서 그 폴더에서 몇 가지 명령을 실행해야합니다.

아무에게도 python을 사용하여 폴더를 입력하는 방법을 알려주십시오. 위와 같이 리눅스에서 코드를 작성하십시오.

+0

직접 명령을 실행 하시겠습니까? 예 : subprocess.call ([ "/ path/to/my/command", "arg1", "arg2"]) –

+0

@JohnWang : 작업 디렉토리가 동작과 관련이있는 프로그램이 많이 있습니다. – geoffspear

+0

http://stackoverflow.com/questions/431684/how-do-i-cd-in-python – Rakesh

답변

3

는 현재 작업 디렉토리를 변경하려면 참조 어느 곳에서 import) :

sys.path.append("/home/local/username/project/scrapy/modulename") 
+0

추가적으로 - 원래의 질문에서'os.system '이 작동하지 않는 이유는'os.system '새로운 프로세스를 생성한다 - 그 process__에서 디렉토리를 변경 한 다음 프로세스를 닫는다. –

3

사용 os.chdir : (당신은 또한 같은 수

os.chdir("/home/local/username/project/scrapy/modulename") 

단순히 파이썬의 경로에 해당 모듈을 추가 할 수 :

import os 

os.chdir("/home/local/username/project/scrapy/modulename") 
2

AFAIK, os.system()은 서브 쉘에서 string 명령을 실행합니다.

os.system("cd /path/to/directory/") 

cd 명령이 실제로 서브 쉘에서 실행됩니다 : 그래서, 때 뭔가를 실행합니다. 그러나 os.system 실행 후 서브 쉘이 종료되면 cd은 응용 프로그램에 실제적인 영향을 미치지 않습니다.

+0

OP의 원래 코드가 작동하지 않는 이유를 설명하는 +1. – geoffspear

관련 문제