python删除文件夹无法访问_Python 自动化操作文件和文件夹-程序员宅基地

技术标签: python删除文件夹无法访问  python根须系统斜杠  python将txt转为字符串  

e52bd0c8322a7999ca8c46ced7d21c31.png

投稿作者:Huang supreme编辑整理:JackTian微信公众号:杰哥的IT之旅(ID:Jake_Internet)

投稿作者文章导读:
1、“罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?2、利用 Python 进行多 Sheet 表合并、多工作簿合并、一表按列拆分
1、输出目录下所有文件及文件夹
1)os.getcwd():获取当前python程序的运行路径
import os

结果如下:

98bea554752e07933b9e52f1d65dfcaf.png
2)路径中斜杠(/)和反斜杠()的说明
62efb0864a90c4418268b789f94de4a4.png
3)os.path.join():自动连接路径(不同的操作系统,连接符不同)
"My Project",

结果如下:

64cf9cdfdc368bb5da57a4732001b709.png
4)绝对路径和相对路径
5b6416a478dc13f336fe25fabfbb9d84.png
5)os.listdir()与os.isdir()

os.listdir():列出当前程序文件夹下的所有文件和文件夹;
os.scandir():os.listdir()的一种更好的替代方法,返回的是一个迭代器。注意:我们可以采用循环迭代其中的每一个元素,os.scandir()有两个特殊的属性和一个方法,我们在下面的例子中,进行演示。

os.listdir()
os.scandir()
for item in os.scandir():
    print(item.name,item.is_dir(),"\n\t",item.path)

结果如下:

51148ed9e81e481d5122118e8f3da786.png

其实,os.listdir()或者os.scandir()其实可以传入一个路径,然后获取指定路径下的文件或者文件夹。
"G:\\6Tipdm\\Python集训营_情感分析")

结果如下:

cff61f6e62e2e74b60826c82d27a5740.png
2、遍历、搜索文件及查询文件信息
1)找出文件夹里的文件夹里的“文件”或“文件夹”
① os.walk(路径):传入一个路径,帮助我们将文件夹里的文件夹里的文件夹里的文件都找出来。
for dirpath, dirnames, files 

结果如下:

11a1aa6795d27a822bc330dd1471c59f.png
2)搜索、匹配文件名称及文件信息查看
① 方法一:startswith()和endswith()
  • 字符串A.startswith(字符串B):字符串A是否以字符串B开头;

  • 字符串A.endswith(字符串B):字符串A是否以字符串B结尾;

"abc.txt".startswith(

结果如下:

d439a6d08e748d79188a57f385cf3afe.png
② 方法二:glob模块

该模块可以采取类似于“正则”的方式,进行文件匹配,用起来很方便。

87d1927cc4712b622d089d94b57341fe.png

代码如下:
for i 

结果如下:

d312b21399ee6efd52ae5a2d0ffdb36d.png

特别的:glob()方法中还有一个参数recursive = True,能够将所有深层文件夹里面,符合条件的文件给你找出来。
# 注意:一个*和两个*的区别

结果如下:

997a4f5351424f02aea0131e6dddaa9c.png
③ os.scandir()返回的文件都可以利用stat()方法,进行查看
5e5202008530e608d6dac2d25db50e9e.png

代码如下:
for file 

结果如下:

fa4d02c60ef11bf2b05fea4337e1e4af.png

接着,我们获取上述几个常用属性看看。
import time 

结果如下:

8847b0aedc695fa82460db8ec0e25608.png
3、批量创建、复制、移动、删除、重命名文件及文件夹
1)创建文件夹
"新文件夹名称"):创建单层文件夹;

结果如下:

31c9e00e5441049be75bd8570cc8e8af.png

问题:当某个文件夹已经存在的时候,运行此代码,会报错。此时可以添加一个判断条件

"新文件夹名称"))。

结果如下:

85419fe22d735b3e70dd5c495b2627cb.png
2)复制文件及文件夹(shutil模块儿)
  • shutil.copy("要复制的文件", "要复制到的位置"):复制文件;

  • shutil.copytree("要复制的文件夹", "要复制到的新文件夹的位置"):复制文件夹;

① 复制文件
  • shutil.copy("要复制的文件", "要复制到的位置");

操作如下:

import shutil

结果如下:

a8da255e31d185136c9dc180570c7ee9.png
② 复制文件夹:相当于重命名文件夹
  • shutil.copytree("要复制的文件夹", "要复制到的新文件夹的位置");

  • 注意:将某个文件夹移动到另外一个文件夹(该文件夹必须是新文件夹),不能是已经存在了的文件夹;

操作如下:

import shutil

结果如下:

335133f4e8faa32be9b24156bf6496e7.png
3)移动文件或文件夹
  • shutil.move("要移动的文件或文件夹","要移动到的位置"):移动文件/文件夹;

  • 文件夹或者文件被移动后,原始文件就没有了;

① 移动文件
  • shutil.move("要移动的文件","要移动到的位置")

操作如下:

import shutil

结果如下:

0de55894f904a238ff88fd22d6c44507.png
② 移动文件夹
  • shutil.move("要移动的文件夹","要移动到的位置")

操作如下:

import shutil

结果如下:

e455c48797773a5ccea2699c4860f759.png
4)重命名文件或文件夹
  • os.rename("文件/文件夹","新文件名/新文件夹名")

操作如下:

import os

结果如下:

ed68d97ac9cd820310c34a3f3f939d86.png
5)删除文件或文件夹
① 删除文件
  • os.remove("要删除的文件")

  • 注意:这里说的只是删除文件,而不能是文件夹;

操作如下:

import os 

结果如下:

a3043d4d7a7c8ccdba33bc183ae78ceb.png
② 删除文件夹
  • shutil.rmtree("要删除的文件夹")

操作如下:

import shutil

结果如下:

20132fa70fde872cdf42ae4494887c8e.png
4、创建和解压压缩包
  • 注意:这里所说的压缩包,指的是“.zip”格式的压缩包;

1)读取压缩包里的文件
import zipfile

结果如下:

8f5fc0ad25c598191335e8183698a90d.png
2)读取压缩包里面的文件信息
import zipfile

结果如下:

c3b6170f830ce6b1dacea2b34e2b4074.png
3)解压压缩包
  • extract("压缩包内要解压的文件名","解压到哪个位置"):将压缩包内单个文件解压出来;

  • extractall("解压到哪个位置"):将压缩包内所有文件解压出来;

① 解压单个文件
  • extract("压缩包内要解压的文件名","解压到哪个位置")

import zipfile

结果如下:

c5b446e21ff31b668a65e5c187922c5b.png
② 解压整个文件
  • extractall("解压到哪个位置")

import zipfile

结果如下:

373ff0de218bdfe7d309de251d46b48b.png

注意:如果你的压缩包中“有密码”,则采用以下方式进行解压。

2675dfc232eef1e1c157e3ae2a6d723c.png
4)创建压缩包
① 对某些文件,创建压缩包
"a.txt", 

结果如下:

3cc079233c24a9f1c5783897b3b0c483.png
② 压缩包已经存在,往其中添加文件
# 往上述压缩包中,再次添加一个新文件“傻子”文件夹,使用“a”

结果如下:

7568fa0e5b903b17f5e387b798cadb3a.png
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39838231/article/details/110099203

智能推荐

CEEMDAN分解及其可视化 python_from pyemd import ceemdan-程序员宅基地

文章浏览阅读1.4w次,点赞20次,收藏181次。CEEMDAN算法网上已经有很多了,原理自行百度吧,大多都是使用pyEMD包进行操作,本文也是使用此包:https://pypi.org/project/pyemd/本文着重讲可视化,因为其自带的可视化不怎么好看。废话不多说,上代码。from PyEMD import CEEMDAN# tips:记得设置全局变量 IImfs=[] def ceemdan_decompose(data): ceemdan = CEEMDAN() ceemdan.ceemdan(da_from pyemd import ceemdan

QQ小游戏、微信小游戏获取ip地址,并通过ip得到所在地区_微信小游戏 玩家地址查询-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏7次。QQ小游戏、微信小游戏获取用户的ip地址,并通过ip得到所在地区我们先不说不获取ip就得到的方法,先常规操作要把合法域名加进去,或者不校验合法域名等,不然会报错先获取用户的ip,那就可以通过免费的天气API接口https://tianqiapi.com/ip/**如果是微信就改成wx,他这两个是一样的**qq...._微信小游戏 玩家地址查询

uni-app-程序员宅基地

文章浏览阅读721次,点赞22次,收藏9次。Uni-app是一个基于Vue.js开发的跨平台应用框架,它可以用来快速构建同时运行在多个平台上的应用程序,包括iOS、Android、Web等。Uni-app的核心理念是一套代码多端运行,开发者只需编写一次代码,即可发布到多个平台,极大地提高了开发效率。跨平台性: Uni-app可以将代码编译成原生的iOS、Android应用,也可以编译成H5应用,甚至是小程序,实现了一套代码多端运行。基于Vue.js: Uni-app基于Vue.js框架,开发者可以使用Vue.js熟悉的语法和开发方式来进行开发。

Netty简介_netty底层用什么语言写的-程序员宅基地

文章浏览阅读785次。一、什么是Netty在网络编程领域,Netty是Java的卓越框架。它驾驭了Java高级API的能力,并将其隐藏在一个易于使用的API之后。Netty使你可以专注于自己真正的业务。简单的说,Netty是一个让网络编程变得简洁的框架,实现了真正的异步非阻塞,性能及其优越。二、为什么选择Netty通常,如果用NIO来实现一个服务端需要以下步骤。创建ServerSocketChannel,配置..._netty底层用什么语言写的

tab效果——支持tab标题的宽度自适应-程序员宅基地

文章浏览阅读1k次。自己做的tab效果,参考了jquery里tabs布,还不太完善,只是做了tab的基本效果有时间了补充以下特点:1.让current tab与其他tab等高2.Ie浏览器下的圆角显示 1<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtm..._mat-tab 宽度自适配

Vue--vue中的组件、组件绑定事件和数据、私有组件、子组件,父子组件参数互传...-程序员宅基地

文章浏览阅读137次。一.公有组件以及组件的使用和特点 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"&g..._vue中的组件私有数据能再传入共享数据中吗

随便推点

goroutine并发MySQL_goroutine(Go语言并发)如何使用才更加高效?-程序员宅基地

文章浏览阅读208次。Go语言原生支持并发是被众人津津乐道的特性。goroutine 早期是 Inferno 操作系统的一个试验性特性,而现在这个特性与操作系统一起,将开发变得越来越简单。很多刚开始使用Go语言开发的人都很喜欢使用并发特性,而没有考虑并发是否真正能解决他们的问题。了解 goroutine 的生命期时再创建 goroutine在Go语言中,开发者习惯将并发内容与 goroutine 一一对应地创建 gor..._使用go语言的goroutines进行多个查询mysql的操作

IMX6ULL移植hostapd2.5使用AP模式报错解决_imx6 hostapd-程序员宅基地

文章浏览阅读159次。1.致命错误: netlink/genl/genl,h: 没有那个文件或目录2.arm-linux-gnueabihf/bin/ld: 找不到 -lnl两个报错解决_imx6 hostapd

修改html中title属性的默认样式_html title属性样式-程序员宅基地

文章浏览阅读1.3w次,点赞13次,收藏23次。默认的html的title属性的样式是这样的。通过编写JS函数来实现修改title属性的默认样式效果如下:HTML部分:<span class="mytooltip" title="个性样式个性样式个性样式个性样式个性样式" > 格式样式:</span>CSS部分: #mytitle { position: absolute; color: #ffffff; font-size: 14px; _html title属性样式

车载视频监控系统实现目标及安装详解_车载监控系统平台介绍-程序员宅基地

文章浏览阅读974次,点赞23次,收藏18次。产品外观小巧简洁,低功耗,无噪音,安装灵活方便,系统运行稳定,可广泛应用于公交、长途客运、旅游大巴、物流货运、警用车辆、火车、地铁、轮船、飞机等移动交通工具。4G+GPS车载网络视频服务器可实现多信息的实时监控,车载行驶记录终端可实时监控或随时抽检车辆的行驶状态等信息,系统自动对信息进行处理和存贮,能够实时了解车辆的行驶状态和运行环境,及时发现环境或人为问题,包括随意停车,无关搭乘等。包括事故现场的交通管制、事故现场周边人员疏散、事故的紧急救援等,相关信息可以实时发送到监控指挥中心,便于对事故的及时处理。_车载监控系统平台介绍

kaggle —— Isolatede Sigh Language Recognition_kaggle language里-程序员宅基地

文章浏览阅读120次。note:tf.constant 定义一个常量tf.transpose 转置python装饰器就是用于拓展原来函数功能的一种函数normalisation_correction 这个矩阵用于校正相机的拍摄方向,将左手调整为右手,右手调整为左手。pad_edge 用于在给定张量的左侧或右侧填充一定数量的重复元素@tf.function 装饰器 装饰了一个 call 方法,用于处理输入数据。_kaggle language里

CentOS 8.0 基本配置_centos8 server getenforced-程序员宅基地

文章浏览阅读1.3k次。1. 修改主机名[root@localhost ~]# hostnamelocalhost.localdomain[root@localhost ~]# vi /etc/hostname //将文件中的“localhost.localdomain”修改为“Server”,需重启后方可生效localhost.localdomain -> Server2. 关闭selinux[root@localhost ~]#..._centos8 server getenforced

推荐文章

热门文章

相关标签