由于我不熟悉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中完成。
答案 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))