Python,单步执行文件夹(运行脚本)

时间:2011-05-17 15:43:00

标签: python python-2.6

由于我不熟悉Python,我以为我会来这里。

无论如何我有几个文件夹(比方说20个文件夹) 在每个文件夹中有更多文件夹(假设每个文件夹5个) 在EACH中,其中一个文件夹是另一个文件夹,在THAT中是我需要运行的脚本。

脚本的运行方式与'ie'相同:sh script.sh

基本上我需要为每个文件夹运行这个脚本,问题是我不知道如何进入每个文件夹(有脚本),这个文件夹距原始文件夹低4层。

所以总共有120个脚本需要以相同的方式运行(这个脚本也会返回一个数字,例如(成功为1,失败为0)我需要记录(不应该太难)弄清楚)

最好的方法是什么?检查结果我想我可以搞清楚,但是踩过所有这些子文件夹我老实说不熟悉python知道。

Just so everyones clear the folder structure is like this:
Top Level (20 or so folders)
 -->1 Below (5 or so Folders)
 ----->1 below one of these 5 folders (only 1 folder is contained)
 --------->1 below that one folder (here is where the script resides)

不要问我为什么文件夹的结构是这样的......哈哈。这将在python 2中完成。

2 个答案:

答案 0 :(得分:2)

import glob,subprocess
for script in glob.glob('*/*/*/*.sh'):
   s = subprocess.Popen([script], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
   stdoutdata,stderrdata = s.communicate()
   returncode = s.returncode
   # Do something with stdoutdata, returncode etc. here

答案 1 :(得分:1)

有点矫枉过正,但应该有效:

import os

root = '/foo/'

for directory, subdirectories, files in os.walk(root):
  for file in files:
     if os.path.splitext(file)[-1].lower() == '.sh':
       os.system('sh ' + os.path.join(directory, file))