【发布时间】:2021-09-02 09:19:20
【问题描述】:
我想在脚本的子进程中使用变量运行此命令。
变量是:
filenames[k]
filenames 有很多名字(字符串),我可以用k 来查看。
命令是:
python3 train.py "C:\Users\Tommy\data\\"+filenames[k] "C:\Users\Tommy\data\\"+filenames[k]+"_model" --choice A
我想在脚本中作为子进程运行这个命令:
subprocess.run([" python3 train.py "C:\Users\Tommy\data\\"+filenames[k] "C:\Users\Tommy\data\\"+filenames[k]+"_model" --choice A "])
但是语法有问题。我不知道是什么。 我在 Windows 上使用 Python 3.6.8 运行它。
【问题讨论】:
-
传递给
run()的第一个参数应该是一个字符串列表。您可以预先构建此列表。我建议你这样做。 -
filenames[1] 是 data1.csv,格式可以是 "C:\Users\Tommy\data\\"+%s % filenames[k]
-
@Tommy 如果您对路径格式有疑问,请使用标准库 os.path.join(...) 中的 os.path 包。它与平台无关,(不确定)应该转义“奇怪”字符
-
我的意思是首先创建一个
args列表。即:args = ['python3', 'train.py', os.path.join(r'C:\Users\Tommy\data', filenames[k]), os.path.join(r'C:\Users\Tommy\data', filenames[k], "_model"), '--choice A'],然后在单独的行上调用subprocess.run(args)。
标签: python variables subprocess command