【发布时间】:2015-06-13 15:24:49
【问题描述】:
我是 python 的新手用户,在使用命令行开关执行外部命令时遇到问题(在 Windows 8 64 位中使用 python 2.7):
lammpsExe = 'C:/Program Files (x86)/LAMMPS 32-bit 20150403/bin/lmp_serial.exe'
os.system(lammpsExe + " -in in.lmps")
它给出以下错误消息:
“C 程序”不是内部或外部命令、可运行程序或批处理文件
os.system 似乎无法理解 lammpsExe 的字符串路径。 然后我尝试了 subprocess.call 并将路径中的 '/' 替换为 '\\' :
lammpsExe = 'C:\\Program Files\\LAMMPS 64-bit 20150330\\bin\\lmp_serial.exe'
subprocess.call([lammpsExe,'-in in.lmps'], shell=True)
但它仍然不起作用,因为命令提示符会发出以下警告:
IndentationError: 意外缩进
我怀疑命令行开关 '-in' 是问题所在。我尝试了 "、'、\ 和 / 的各种组合,但仍然收到错误消息。
【问题讨论】:
-
您需要在包含嵌入空格的路径周围加上双引号:即
'"C:/Program Files (x86)/LAMMPS 32-bit 20150403/bin/lmp_serial.exe"' -
@martineau 它仍然不起作用,即使有以下变体: 或 或
-
即使它不能解决你的全部问题,但它绝对是你需要做的事情。尝试从命令提示符中想出一些可行的方法,然后将其转换为
os.system()调用。
标签: python windows python-2.7 path external-process