近几年随着Python的热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的效率低下,那么必定会涉及到对文件系统的操作,包括文件的增、删、改、查等等,今天小编就来介绍一下如何用Python来实现这些功能

输出当前的路径

我们可以通过Python当中的OS库来获取当前文件所在的位置

import os
os.getcwd()

路径的拼接

我们通过os.path.join()方法来实现

os.path.join('output', 'Book1.xlsx')

output

output\Book1.xlsx

确认某文件夹或者是文件是否存在

我们先来看如何来确认文件夹是否存在,同样也是通过OS模块

os.path.exists('directory_name')

同样的道理,要是我们查看一下某个文件是否存在的时候,可以这么做

os.path.exists('path/file_name')

建立文件夹目录

然后我们来看一下如何新建一个文件夹

os.mkdir("文件夹名称")

当然要是文件夹目录已经提前存在的情况下,上述的代码自然会报错,所以我们通常会先检查一下是否已经存在

if not os.path.exists('文件夹名称'):os.mkdir('文件夹名称')

当然我们有时候需要在已建的文件夹下创建子文件夹,例如下图

这个时候要是引用os.mkdir()方法或许会稍显繁琐,这时我们可以通过os.mkdirs()方法来实现

os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

罗列出当前目录下所包含的所有文件

代码如下

os.listdir('文件夹名称')

但是有时候我们可能想例如搜寻一下当前目录下的所有文件中以“py”结尾的文件,我们可以通过通配符来实现,代码如下

list(glob(os.path.join('.', '*.py')))

上面提到的glob模块能够快速查找我们想要的目录和文件,它支持***?[]这四个通配符

移动文件

要是我们想在不同的目录文件夹之下移动文件,该怎么操作呢?这里我们介绍Python当中的shutil模块,假设我们想要将当前目录下的几个csv文件移动到“test_dir”目录文件夹之下,代码如下

import shutilfor file in list(glob(os.path.join('.', '*.csv'))):shutil.move(file, 'test_dir')

复制文件

当我们想要复制文件的时候,也可以使用shutil模块,例如我们想要将几个“test_dir”目录文件夹下的csv文件复制到“output”目录文件夹之下,代码如下

shutil.copy(os.path.join('test_dir', 'data.csv'), 'output')

除此之外,我们还能够对粘贴过去的文件重命名,代码如下

shutil.copy(os.path.join('test_dir', 'data.csv'),os.path.join('output', 'data_2.csv'))

删除文件

我们来看一下删除文件该如何实现?os.remove()方法可以完成删除文件的功能,

os.remove(os.path.join('output', 'data_2.csv'))

当我们想要删除一整个目录文件夹的时候,可以使用os.rmdir()方法,当然只仅限于是空的目录文件夹

os.rmdir(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

而对于目录文件夹下存在文件的,并不是空的目录文件夹,我们还是需要用到shutil模块,代码如下

shutil.rmtree("test_delete")

或者是

shutil.rmtree(os.path.join("test_delete", "test_1_delete"))

创建和解压 压缩包

谈及到操作压缩包相关的内容,就不得不说zipobj这个模块了

  • 创建一个压缩包

这里我们要用到的是zipfile模块当中的write()方法

file_lists = list(glob(os.path.join('.', '*.xlsx')))with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj:for file in file_lists:zipobj.write(file)
  • 读取压缩包当中的文件信息

通过zipfile模块当中的namelist()方法来实现

with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:print(zipobj.namelist())

output

['Book1.xlsx', 'supermarkt_sales.xlsx']

可以看到输出的就是上次我们打包的几个excel文件

  • 将压缩包当中的单个文件,解压出来

通过zipfile模块当中的extract()方法来实现

dst = "output"with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:zipobj.extract("Book1.xlsx",dst)

上述代码的用意就是将压缩包当中的“Book1.xlsx”文件解压至“output”目录文件夹下

  • 将压缩包中的所有文件,都解压出来

通过zipfile模块当中的extractall()方法来实现,代码如下

dst = "output"with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:zipobj.extractall(dst)

各位伙伴们好,詹帅本帅搭建了一个个人博客和小程序,汇集各种干货和资源,也方便大家阅读,感兴趣的小伙伴请移步小程序体验一下哦!(欢迎提建议)

推荐阅读

牛逼!Python常用数据类型的基本操作(长文系列第①篇)

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)

牛逼!Python函数和文件操作(长文系列第③篇)

牛逼!Python错误、异常和模块(长文系列第④篇)

9个必知的Python操作文件/文件夹方法相关推荐

  1. 9个必知的 Python 操作文件/文件夹方法

    作者 | 欣一 来源 | Python爱好者集中营 近几年随着Python的热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的效率低下,那么必定会涉及到对文件系统的操作, ...

  2. 【Python】9个必知的Python操作文件/文件夹方法

    近几年随着Python的热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来的效率低下,那么必定会涉及到对文件系统的操作,包括文件的增.删.改.查等等,今天小编就来介绍一下如 ...

  3. python开发环境和运行环境的区别_Python 初学者必知:Python 运行与开发环境

    http://codingdao.com/wp/post/py-must-know-run-dev-env/ Python 初学者必知:Python 运行与开发环境 2011年2月11日 Breake ...

  4. Python操作Zip文件

    Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt.

  5. python处理excel表格实例-使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...

  6. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  7. 手机使用python操作图片文件

    手机使用python操作图片文件 起因 前几天去国图拍了一本书,一本心理学方面的书,也许你问我为什么不去买一本,或者去网上找pdf. 其实吧,关于心理学方面的书可以说在市面上一抓就是一堆,至于拍这本书 ...

  8. 详解Python操作Excel文件

    前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法. 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. 地 ...

  9. 初学者必知的Python中优雅的用法

    初学者必知的Python中优雅的用法:http://python.jobbole.com/81393/

最新文章

  1. 宏定义 是否retina高清屏,判断当前设备
  2. linux系统搭建监控,Linux系统搭建zabbix监控系统实例讲解
  3. 积木赛尔号机器人_【点映观影】赛尔号大电影7:疯狂机器城赛尔宇宙探险迎人类首秀...
  4. 简单的遗传算法实例(MATLAB版)
  5. 动态比较器蒙特卡洛(mente carlo)仿真失调电压
  6. java中文转繁体汉字
  7. 网站服务器 发包,如何实现CentOS不停向外发包_网站服务器运行维护,CentOS
  8. B站粉丝数显示器,播放数、获赞数失效解决。
  9. 期货开户交易所的手续费和查询方法
  10. 如何做好电商平台的内容运营?
  11. keep-alive和activated
  12. 适合程序员的笔记本电脑
  13. [转]Kaldi命令词识别
  14. 潜在解决方法-系统映像还原失败,找不到可用于恢复系统盘的磁盘
  15. 【最全的大数据面试系列】Hadoop面试题大全(一)
  16. 2019最新《Python从入门到精通之30天快速学Python教程 》
  17. 文献 | 如何快速将英文文献翻译为中文?
  18. 时间类型转换为字符串
  19. Sqlserver修改表结构提示不允许保存更改。
  20. android资apk资源加密,4399游戏盒 安卓APK sign 加密分析 之 so文件分析

热门文章

  1. hibernate中的所有属性
  2. JSONObject toJSONString错误
  3. SpringCloud系列之服务消费Ribbon和Feign区别
  4. Mysql-innoDB存储引擎(事务,锁,MVCC)
  5. 获取一亿数据获取前100个最大值
  6. Redis安装部署配置说明
  7. CSS的px、em、rem、%、vw、vh、vm 单位区别
  8. mysql xtrabackup还原_Xtrabackup备份、还原、恢复Mysql操作大全
  9. python读写excel模块pandas_Python3使用pandas模块读写excel操作示例
  10. producer send源码_RocketMq系列之Producer顺序消息发送源码分析(四)