【问题标题】:Delete all content in folder with Python [closed]使用 Python 删除文件夹中的所有内容 [关闭]
【发布时间】:2016-05-01 05:08:45
【问题描述】:

按照this answer,我正在尝试使用此代码删除文件夹的内容

import os
import glob

files = glob.glob('/YOUR/PATH/*')
for f in files:
    os.remove(f)

但是python返回一个归因错误“'str'对象没有属性'remove'”。我做错了什么?

【问题讨论】:

  • 您似乎将字符串分配给变量os。但是,您没有显示该代码。这是你的全部代码吗?
  • os 不是这里的变量。是的,这就是我的全部代码。仍然没有解决问题。
  • os.remove() 将路径作为参数。 f 是这里的文件名。
  • 能否请您发布AttributeError 异常的完整回溯。

标签: python


【解决方案1】:

要删除整个目录,请使用shutil.rmtree('/your/path')

阅读 Python 文档的更多内容

查看已回答的类似question

【讨论】:

  • 这也删除了封闭文件夹,而我只想删除其中的内容。
  • @RicardoDahis 删除所有内容后,您始终可以重新创建空目录。您不必遍历单个文件
  • 谢谢鲍勃!我在循环中执行此操作,例如for folder in ['/folder1', '/folder2']: shutil.rmtree(path+folder) os.mkdir(path+folder)os.mkdir 返回“'str' object has no attribute 'mkdir'”。
  • @RicardoDahis 您已损坏您的os 导入。您确实似乎已经为os 分配了一个字符串。发布完整的回溯怎么样?
  • 我怀疑您提供的路径有问题。试试 os.mkdir(os.path.join(path, folder))
【解决方案2】:

正如 Bob Ezuba 在他的 answer 中所说,shutil.rmtree() 是一种更好的方法。如果需要,您可以重新创建目录。

使用glob.glob('/your/path/*') 将找不到以. 开头的隐藏文件。您可以多次致电glob(),但这越来越难看。 glob() 也不允许您区分文件和目录,从而难以删除子目录。 shutil.rmtree() 将删除所有文件和子目录。

或者,您可以重命名目录,重新创建它,然后rmtree() 旧目录。如果您有任何进程写入目录中的文件,这可能会更好。如果rmtree() 无法删除某些文件,它不会让您的目录一团糟,例如由于权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2022-01-23
    • 2017-04-02
    • 2021-11-10
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多