如何通过python调用带有可变参数的shell脚本文件

如何通过python调用带有可变参数的shell脚本文件

我正在通过 python 命令调用 shell 脚本文件。Filename1是我在独立 python 程序中创建的一个变量,用于存储文件名的实际值。我该如何编写它来执行下面的第二条语句,因为Filename变量在这里不起作用。如果我保留实际的文件名,则 shell 脚本文件将通过第二条语句执行。

我需要自动执行此操作,并且无法对实际文件名进行硬编码。因此,我希望是否有机会可以在第二条语句中访问该变量。

import os
os.system('sh uploadPDFContentFile.sh Filename1')

答案1

更好的利用子流程模块。

>>> subprocess.run(["ls", "-l"])  # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)

subprocess 模块提供了更强大的工具来生成新进程并检索其结果;使用该模块比使用此功能更好。

但是,您可以使用字符串替换:

call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))
os.system(call_with_args)

或者字符串格式

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'

相关内容