python如何删除文件内容_如何在Python中删除文件夹的内容?

如何在Python中删除本地文件夹的内容?

当前项目适用于Windows,但我也希望看到* nix。

#1楼

扩展mhawke的答案,这就是我已经实现的方法。 它会删除文件夹的所有内容,但不会删除文件夹本身。 在Linux上经过测试,带有文件,文件夹和符号链接,也应该在Windows上运行。

import os

import shutil

for root, dirs, files in os.walk('/path/to/folder'):

for f in files:

os.unlink(os.path.join(root, f))

for d in dirs:

shutil.rmtree(os.path.join(root, d))

#2楼

这个:

删除所有符号链接

无效链接

链接到目录

链接到文件

删除子目录

不删除父目录

码:

for filename in os.listdir(dirpath):

filepath = os.path.join(dirpath, filename)

try:

shutil.rmtree(filepath)

except OSError:

os.remove(filepath)

与许多其他答案一样,这不会尝试调整权限以启用文件/目录的删除。

#3楼

import os

import shutil

# Gather directory contents

contents = [os.path.join(target_dir, i) for i in os.listdir(target_dir)]

# Iterate and remove each item in the appropriate manner

[os.remove(i) if os.path.isfile(i) or os.path.islink(i) else shutil.rmtree(i) for i in contents]

较早的注释还提到在Python 3.5+中使用os.scandir。 例如:

import os

import shutil

with os.scandir(target_dir) as entries:

for entry in entries:

if entry.is_file() or entry.is_symlink():

os.remove(entry.path)

elif entry.is_dir():

shutil.rmtree(entry.path)

#4楼

我知道这是一个旧线程,但是我从python的官方站点发现了一些有趣的东西。 只是为了分享另一个想法,即删除目录中的所有内容。 因为在使用shutil.rmtree()时遇到一些授权问题,并且我不想删除目录并重新创建它。 原始地址为http://docs.python.org/2/library/os.html#os.walk 。 希望可以帮助到某人。

def emptydir(top):

if(top == '/' or top == "\\"): return

else:

for root, dirs, files in os.walk(top, topdown=False):

for name in files:

os.remove(os.path.join(root, name))

for name in dirs:

os.rmdir(os.path.join(root, name))

#5楼

我曾经通过这种方式解决问题:

import shutil

import os

shutil.rmtree(dirpath)

os.mkdir(dirpath)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值