2014-07-07 3 views
1

아래 코드는 내가 작성한 프로그램의 일부로 .py, .sh의 모든 메소드를 실행합니다. 또는 .pl 파일을 디렉터리 및 해당 폴더에 저장합니다. 프로그램을 작성할 때 Python IOError : 재귀 디렉토리 호출에서 [Errno 2]

for root, subs, files in os.walk("."): 
    for a in files: 
     if a.endswith('.py') or a.endswith('.sh') or a.endswith('.pl'): 
      scriptFile = open(a, 'r') 
      writer(writeFile, scriptFile) 
      scriptFile.close() 
     else: 
      continue 

, 그것은 내가 쓴 디렉토리 트리에서 일하지만, 내가 거기에 그것을 시도 다른 폴더로 이동할 때이 오류 메시지가 얻을 :

Traceback (most recent call last): 
File "versionTEST.py", line 75, in <module> 
scriptFile = open(a, 'r') 
IOError: [Errno 2] No such file or directory: 'enabledLogSources.sh' 

내가 아는을 파일이 가장 확실히 있기 때문에 뭔가 이상한은

+0

좀보고 할 수 있습니다 되었습니까? 이 스크립트를 실행중인 디렉토리의 레이어를 enabledLogSources.sh? – Hoopdady

+0

'open (os.path.join ("{}/{}"형식 (루트, a)), "r")' –

+0

여기서'writeFile'은 어디에서 오는 것입니까? –

답변

1

당신은 당신의 이름에 루트 디렉토리를 앞에 추가해야합니다 ...이 벌어지고

scriptFile = open(root + '/' + a, 'r') 
+0

이 방법을 사용했는데 완벽하게 작동했습니다. 감사! – Zach

1

파일에는 전체 경로가 아닌 파일 이름 만 들어 있습니다. 파일의 경로는 파일 이름과 루트 가입 방법 : 테스트 디렉토리 여러 수준의 깊은

scriptFile = open(os.path.join(root, a), "r") 

당신은 https://docs.python.org/2/library/os.html#os.walk