朋友们

我有一个简单的脚本

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找不到操作数。但是,如果我一起写它们,它也不会删除文件。

谢谢

f

最佳答案

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

但是,出于安全考虑,不建议使用shell=True调用子流程。您应该删除shell=True并保留列表样式的args。

关于python - python,subprocess.call([“rm”,“inv.mt0”],shell = True)无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12045986/

10-11 04:58