python 删除文件夹和文件【转】

article/2025/9/16 14:32:11

python 删除文件夹和文件
目录

一、三种删除方法
二、删除失败情况 PermissionError: [WinError 5] 拒绝访问
2.1 给python权限
2.2 删除改为更名
一、三种删除方法
python删除文件和文件夹主要用到os模块和shutil模块,针对文件夹和文件的删除,有几种情况,直接上代码:

文件删除相关的所有操作,基本全部覆盖

如果确实对你有帮助,右侧打赏一分鼓励一下吧,嘿咻嘿咻

import shutil
import os
from pathlib import Path# 第一种:删除一个文件夹,无论里面是否有文件或文件夹
# (不支持文件,文件夹不存在会报错)
def del_files0(dir_path):shutil.rmtree(dir_path)# 第二种 递归删除dir_path目标文件夹下所有文件,以及各级子文件夹下文件,保留各级空文件夹
# (支持文件,文件夹不存在不报错)
def del_files(dir_path):if os.path.isfile(dir_path):try:os.remove(dir_path) # 这个可以删除单个文件,不能删除文件夹except BaseException as e:print(e)elif os.path.isdir(dir_path):file_lis = os.listdir(dir_path)for file_name in file_lis:# if file_name != 'wibot.log':tf = os.path.join(dir_path, file_name)del_files(tf)print('ok')# 第三种: 删除dir_path目标文件夹下所有内容,保留dir_path文件夹
# (不支持文件,文件夹不存在会报错)
def del_files2(dir_path):# os.walk会得到dir_path下各个后代文件夹和其中的文件的三元组列表,顺序自内而外排列,# 如 log下有111文件夹,111下有222文件夹:[('D:\\log\\111\\222', [], ['22.py']), ('D:\\log\\111', ['222'], ['11.py']), ('D:\\log', ['111'], ['00.py'])]for root, dirs, files in os.walk(dir_path, topdown=False):print(root) # 各级文件夹绝对路径print(dirs) # root下一级文件夹名称列表,如 ['文件夹1','文件夹2']print(files)  # root下文件名列表,如 ['文件1','文件2']# 第一步:删除文件for name in files:os.remove(os.path.join(root, name))  # 删除文件# 第二步:删除空文件夹for name in dirs:os.rmdir(os.path.join(root, name)) # 删除一个空目录if __name__ == '__main__':dir_path = Path('./log').absolute()del_files2(dir_path)

二、删除失败情况 PermissionError: [WinError 5] 拒绝访问
删除某些文件夹或者文件,比如git仓库的时候,会报错,显示 PermissionError: [WinError 5] 拒绝访问。
在这里插入图片描述

2.1 给python权限
这是因为没有权限,可以参考>>解决办法<<

2.2 删除改为更名
我感觉给与权限还需要修改这修改那的很麻烦,直接放弃删除操作,替换为更改文件夹名字操作:

import random,os
dir_path = os.getcwd()  # 当前目录绝对路径D:\git_helper
print('当前目录绝对路径:', str(random.random())[-5:])
os.rename(src='../weebot_wxbot', dst=f'../weebot_wxbot{str(random.random())[-5:]}')

http://chatgpt.dhexx.cn/article/SDSFvEjY.shtml

相关文章

Python 中删除文件的几种方法

很多时候开发者需要删除文件。可能是他错误地创建了文件&#xff0c;或者不再需要该文件。无论出于何种原因&#xff0c;都有一些方法可以通过Python来删除文件&#xff0c;而无需手动查找文件并通过UI交互来进行删除操作。 使用Python删除文件有多种方法&#xff0c;但是最好的…

使用phpstudy+nat123实现网站发布(实现外网访问内网)

第一次想在网上分享点东西&#xff0c;结果发错了&#xff0c;发成了提问&#xff0c;在这里重新发一遍&#xff0c;看过的见谅&#xff01; 1.phpStudy phpStudy是一个集成了最新的ApachePHPMySQLphpMyAdminZendOptimizerPHP等程序的集成包&#xff0c;安装完成后&#xff0c;…

nat123内网穿透

在做开发的时候&#xff0c;因为自己没有服务器&#xff0c;想要自己的网站啥的可以外网访问怎么办&#xff0c;这时候咱们可以通过一个工具&#xff1a;nat123来做个内网穿透&#xff0c;非常简单&#xff0c;下面这里做个简单的示范&#xff0c;nat123安装包&#xff0c;我这…

windows 下 nat123免费版内网穿透使用教程

1、首先进入nat123官方网站 http://www.nat123.com/Pages_2_32.jsp&#xff0c;下载windows版&#xff0c;根据环境变量选择下载。 2、安装程序&#xff0c;安装成功后运行&#xff0c;需要注册用户登录&#xff0c;自行注册。 3、点击添加映射&#xff0c;填写完成后点击保存…

在NAT内网环境下使用nginx+nat123搭建外网可访问的代理服务器

原理都一样&#xff0c;都是把内网的某个端口映射到外网上&#xff0c;只不过相对于买虚拟主机&#xff0c;买服务器等等&#xff0c;这个相对简单而且方便一些。而且还便宜&#xff08;貌似这个公司还处在创业期&#xff0c;至于后期会不会狠宰用户还很难说&#xff09;下面介…

使用 nat123 用自己电脑做服务器(在自己有网络的电脑上映射到外网域名访问)

最近自己想发布一个项目&#xff0c;买了相应的域名&#xff0c;但是没有买服务器&#xff0c;因为在初始阶段&#xff0c;想后面点再买服务器&#xff0c;现在想用自己的电脑做服务器&#xff0c;于是在网上找到了 nat123这个软件&#xff0c;根据我的经历&#xff0c;刚开始使…

[分享] linux利用nat123发布网站及注意事项

首先需要安装nat123以及客户端&#xff0c;相关的安装流程如下。 然后是在nat123中进行全端口映射&#xff0c;这个是转载的教程&#xff0c;如下。 这里有一些小细节要注意&#xff1a; 在nat123全端口映射添加完成之后&#xff0c;就要进行网站发布的工作&#xff0c;主要都是…

nat123端口映射: 外网通过ssh访问内网非公网ip的服务器

问题描述 LINUX部署在内网环境&#xff0c;没有公网IP&#xff0c;在内网可以上外网。如何实现在外网SSH访问内网LINUX主机&#xff1f; 解决方法&#xff1a; 使用nat123端口映射&#xff0c;一步映射即可将内网LINUX地址映射到外网&#xff0c;实现外网的访问。 nat123提…

使用nat123怎样解决网速慢的问题?

许多人在使用Nat123时会遇到网速慢的问题&#xff0c;下面就来说说相关的解决方法。 1、cname正确指向。cname指向的唯一性。使用自己的域名时&#xff0c;如设置cname指向nat123的&#xff0c;确保cname的唯一性&#xff0c;不对应的cname指向解析慢或其他不可预知的问题。修…

我的世界nat123联机教程

我的世界MC开服&#xff0c;使用nat123游戏联机教程。 一&#xff0c;我的世界MC局域网内部署测试 目的就是确保在内网可以正常访问。 1.下载并安装/解压我的世界MC开服器到本地。 本文最后有附上一个纯净的开服包&#xff0c;提供有需要的下载使用。 开服包主要有二个文件…

内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123)

内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123) 方式一(钉钉) 阿里钉钉提供的免费内网穿透&#xff0c;是基于ngrok 的&#xff0c;可以实现 Http 穿透&#xff0c;可以将我们本地服务暴露给外部访问&#xff0c;可以用作我们调试一些回调接口&#xff0c;或者共…

内网穿透妙用——内网转公网nat123

公网下访问私有云盘——NAT123免费圆梦 根据前两期发布的关于个人网盘搭建的博客&#xff08;个人网盘配置——以Cloudreve为例&#xff09;&#xff0c;博主进行了进一步的更新维护&#xff0c;由于初始配置版本是基于局域网组建的&#xff0c;在小型办公室环境内确实使用还算…

使用nat123在个人电脑上搭建服务器(小白详细教程)

昨天自己在个人电脑上搭建了一个服务器&#xff08;十分简陋。。。&#xff09;&#xff0c;也花了不少时间&#xff0c;遇到了一些坑。这里做一个分享&#xff0c;也帮大家避避坑。因为我也是个小白&#xff0c;自己摸索&#xff0c;所以我就尽量写得步骤详尽一点&#xff0c;…

如何使用利用nat123实现内网穿透

如何使用利用nat123实现内网穿透 首先&#xff0c;我们要明白何为内网穿透&#xff0c;内网穿透即即在计算机在局域网内的时候&#xff0c;外网与内网的计算机的节点进行连接时所需要的连接通信&#xff0c;简单滴说&#xff0c;我们访问百度&#xff0c;实际上是访问了百度的公…

对称密码之3DES

至于 3DES 为什么会出现呢&#xff1f;其实&#xff0c;这个不难想到。由于 DES 是一种非常简便的加密算法&#xff0c;但是密钥长度比较短&#xff0c;计算量比较小&#xff0c;相对来说&#xff0c;比较容易被破解。因此&#xff0c;在 DES 的基础上&#xff0c;使用三重数据…

3DES加密算法

一、3DES加密 DES是一个经典的对称加密算法&#xff0c;但也缺陷明显&#xff0c;即56位的密钥安全性不足&#xff0c;已被证实可以在短时间内破解。为解决此问题&#xff0c;出现了3DES&#xff0c;也称Triple DES&#xff0c;3DES为DES向AES过渡的加密算法&#xff0c;它使用…

java 3des_如何用Java进行3DES加密解密 java实现3des加密解密教程

3des&#xff0c;全称为3DESede或TripleDES&#xff0c;中文解释为是三重数据加密&#xff0c;用户可以通过通过对DES算法进行改进&#xff0c;针对每个数据块进行三次DES加密&#xff0c;下面小编为你带来java实现3des加密解密教程&#xff01; 首先我们需要自行安装配置java环…

C# 3DES 加密

public class DESHelper{#region 3des加密/// <summary>/// 3des ecb模式加密/// </summary>/// <param name"aStrString">待加密的字符串</param>/// <param name"aStrKey">密钥</param>/// <param name"iv&…

3DES加密

最近需要对外对接部分接口&#xff0c;用到了3DES加密&#xff0c;便顺手整理一下逻辑和python实现。 DES 对称加密算法。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为7个字节共56位&#xff0c;是DES算法的工作密钥&#xff1b;Data为8个字节64位&#xff…

DES对称加密及三重DES(3DES)

一、DES 1 概述 DES算法全称为Data Encryption Standard&#xff0c;即数据加密算法&#xff0c;它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为8个字节共64位&#xff0c;是DES算法的工作密钥&#xff1b;Data也为…