我正在通过 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'