2

朋友们,

我有一个简单的脚本

import subprocess

subprocess.call(["./run_xf"])

old=open('./inv.mt0','r')

lines=old.readlines()

lines=lines[3:]

new=open('./inv.mt1','w')

new.writelines(lines)

old.close()

new.close()

subprocess.call(["rm", "inv.mt0"], shell=True)

除最后一个代码外,所有代码都有效。

run_xf 运行 hspice 并生成 inv.mt0。然后我将部分 inv.mt0 复制到 inv.mt1。然后我想删除 inv.mt0。但这不起作用。

对于这个特定的例子,它抱怨 rm 找不到操作数。但是如果我把它们写在一起,它也不会删除文件。

谢谢

xf

4

1 回答 1

6

如果您正在使用,则shell=True必须将字符串传递给subprocess.call,而不是列表。有关更多详细信息,请参阅http://docs.python.org/library/subprocess.html#subprocess.call

shell=True但是,由于安全隐患,不建议调用子进程。您应该删除shell=True并保留列表样式的参数。

于 2012-08-20T22:30:03.990 回答