python, subprocess.call( ["rm", "inv.mt0"], shell=True) 不工作

标签 python subprocess

friend ,

我有一个简单的脚本

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

最佳答案

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

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

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

相关文章:

python - 如何使用 Python 递减整个 csv 列 - 我做错了什么?

python - 为什么我的列表中出现字符串超出范围索引错误?

python: `with open()` 和未知数量的文件

python - Python 解释器如何为不同的方法分配内存?

java - 为什么 Java 创建的两个子进程表现不同?

python - 等待进程直到所有子进程完成?

python - 如何使用子进程与 python 脚本交互

python - 根据其他列上的设置条件绘制列数据

Python subprocess.Popen 不接受文本参数

通过 SSH 运行后台服务的 Python 脚本