在python脚本中获取路径

时间:2015-03-11 20:10:31

标签: python linux bash shell unix

我试图在python中使用子进程在linux上运行一些脚本, 但是我的道路不适用于我想做的事情。

我正在使用:

subprocess.Popen(["nohup", "python", DIR4, DIR2 + dirname + /*  + '/*.json'])

DIR4 = path of python, DIR2+dirname是我想要进入的目录。 从这里开始,我想使用DIR2+dirname中的所有子目录以及所有子目录中的所有json文件。

所以例如:

 DIR2+dirname = /tmp/test/ 

/tmp/test/目录中,有/tt1, /tt2, /tt3 每个/tt目录包含1.json, 2.json, 3.json 如何使用我的命令一直调用这一切?

2 个答案:

答案 0 :(得分:0)

使用this StackOverflow question的已接受答案,从DIR2+dirname开始,作为查找所有JSON文件的路径。

这个片段是从那里复制的并略微适应:

import fnmatch
import os

matches = []

for root, dirnames, filenames in os.walk(DIR2 + dirname):
  for filename in fnmatch.filter(filenames, '*.json'):
      matches.append(os.path.join(root, filename))

subprocess.Popen(["nohup", "python", DIR4] + matches)

如果您有许多文件,请记住命令行长度存在特定于操作系统的限制,请参阅此ServerFault question

答案 1 :(得分:0)

使用glob模块:

import os.path
import glob
jsons = glob.glob(os.path.join(DIR2, dirname, '*', '*.json'))
subprocess.Popen(["nohup", "python", DIR4] + jsons)