在 python 脚本中获取路径

Getting path in python script

我正在尝试将 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 我怎样才能在顶部使用我的命令调用这一切?

使用已接受的 this Whosebug 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)

如果您有很多文件,请记住命令行长度有 OS 特定限制,请参阅此 ServerFault question

使用glob模块:

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