使用python subprocess.call不能rm -r目录

use*_*512 0 python shell subprocess exception rm

Welp,我需要从python中删除一些巨大的临时目录,我似乎无法使用rm -r.我正在想一个大数据集(在s3上)我没有磁盘空间让他们离开.

通常我会从python调用命令的方法是

import subprocess
subprocess.call('rm','-r','/home/nathan/emptytest')
Run Code Online (Sandbox Code Playgroud)

这给了我

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 629, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

Dan*_*uri 11

你用错误的方式称呼它.第一个参数应该是一个列表:

import subprocess
subprocess.call(['rm','-r','/home/nathan/emptytest'])
Run Code Online (Sandbox Code Playgroud)

您可能还想尝试使用shutitl.rmtree

  • 是的,我认为shutil.rmtree是我真正想要的. (3认同)