我有一个存储在C:/中的Tcl脚本 我如何从Python运行它? (它不是在python中编写Tcl脚本然后运行它)
为了澄清我的问题,首先我有一个名为oommf的基于Tcl的程序,用于模拟。这是一篇简短的介绍http://math.nist.gov/oommf/
我通过这个程序编写了一些脚本,并希望使用python运行一系列模拟,然后提取数据以绘制一些图形。 .mif格式的脚本,以及我希望做的是
Tcl程序采用.tcl格式。
Tcl程序也可以在命令行中运行。我听说有一些方法可以在python中模拟命令行(在windows环境中),但我不知道,如果有人知道,它会有所帮助。
(抱歉,我以前的编程知识只有一点C,这就是为什么我的问题可能含糊不清,因为我不知道如何更清楚地描述它)
答案 0 :(得分:0)
尝试使用subprocess.call
subprocess.call将避免必须处理各种shell的引用约定的问题。它接受一个列表而不是字符串,因此参数更容易分隔。即。
import subprocess
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
答案 1 :(得分:0)
这是一个建议。其中大部分是猜测,因为我不知道你想要做什么。
import subprocess
# 1. Code to generate .mif script, for example: my.mif
with open('my.mif', 'wb') as f:
f.write('something')
# 2. Launch oommf. I am guessing the command line, based on your
# description and based on what the location of tclsh in my system
cmd = ['C:/Tcl/bin/tclsh.exe', 'C:/oomf.tcl', 'my.mif']
process = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
# 3. Now, you can do something with stdout and stderr if needed
# Below is just an example
with open('data.txt', 'wb') as f:
f.write(stdout)