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

cxf*_*f54 1 python subprocess

朋友们,

我有一个简单的脚本

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 Code Online (Sandbox Code Playgroud)

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

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

对于这个具体的例子,它抱怨rm找不到操作数.但是,如果我一起写它们,它也不会删除该文件.

谢谢

XF

gab*_*rtv 5

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

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