2014-07-07 146 views
1

下面的代碼是我正在編寫的程序的一部分,它在每個.py,.sh上運行一個方法。或.pl文件在目錄及其文件夾中。Python IOError:[遞歸目錄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

是你的測試目錄中的多個層次深?啓用LogSources.sh從您運行此腳本的目錄下層? – Hoopdady

+0

'open(os.path.join(「{}/{}」。format(root,a)),「r」)' –

+0

'writeFile'從哪裏來? –

回答

1

你需要預先設置的根目錄到您的文件名

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

我用這種方法,它工作完美。謝謝! – Zach