如何将bash命令结果用作python参数?
我试图找到目录中的所有.js文件,并将其作为python的参数。使用bash命令如何将bash命令结果用作python参数?,python,bash,command-line-arguments,Python,Bash,Command Line Arguments,我试图找到目录中的所有.js文件,并将其作为python的参数。使用bash命令find,我可以用.js收集所有文件-名称“*.js”,但我不知道如何将这些信息提供给python。我不想一个接一个地发送文件名。我想以列表的形式发送处理参数的python代码 import argparse argparser = argparse.ArgumentParser("sh test") argparser.add_argument("js_file", type=str, nargs ="+",
find,我可以用.js收集所有文件-名称“*.js”
,但我不知道如何将这些信息提供给python。我不想一个接一个地发送文件名。我想以列表的形式发送处理参数的python代码
import argparse
argparser = argparse.ArgumentParser("sh test")
argparser.add_argument("js_file", type=str, nargs ="+", help="js file names")
args = argparser.parse_args()
for file in args.js_file:
# do something
如果您有GNU find,您可以使用
-exec+
一次性调用具有所有匹配文件名的命令
find . -name '*.js' -exec script.py {} +
如果没有,您可以使用find | xargs
获得相同的行为
find . -name '*.js' -print0 | xargs -0 script.py
您可以使用python脚本执行以下操作:
import subprocess
cmd = 'find . -name "*.js"'
p = subprocess.run(cmd, shell=True, capture_output=True)
files = p.stdout.decode().split()
print(files)
鉴于foo.py是您的python脚本,您可以使用以下内容:
python foo.py `find . -name "*.js" | tr '\n' ' '`
您也可以在Python中找到与
*.js
匹配的所有文件:如果文件名中没有空格,这就是Python my_script.py*.js