【发布时间】:2011-10-13 00:07:16
【问题描述】:
我必须从几个包含数据的文件中制作图表。我已经找到了一种运行简单命令的方法
xmgrace -batch batch.bfile -nosafe -hardcopy
其中 batch.bfile 是一个带有宽限命令的文本文件,用于打印我想要的图形。我已经手动尝试过了,效果很好。要对多个文件执行此操作,我只需在 batch.bfile 中编辑一个参数,并在每次进行更改时运行相同的命令。
我已经编写了一个 python 代码,它可以编辑 batch.bfile 并使用 for 循环遍历所有数据文件。在每个循环步骤中,我想直接在命令行中运行上述命令。
经过一番搜索,我找到了两种解决方案,一种使用 os.system(),另一种使用 subprocess.Popen(),我只能通过编写使 subprocess.Popen() 正常工作而不会出现任何错误:
subprocess.Popen("xmgrace -batch batch.bfile -nosafe -hardcopy", shell=True)
问题是,这在实践中没有任何作用,也就是说,它与直接在命令行中运行命令不同。我已经尝试为 batch.bfile 编写完整目录,但没有任何改变。
我正在使用 Python 2.7 和 Mac OS 10.7
【问题讨论】:
-
没有任何改变,因为没有返回或打印?
-
没有文件是由恩典生成的,我的意思是。如果我直接在命令行中运行命令,图形会正常生成,没有任何问题。
标签: python command-line subprocess popen batch-processing