python文件操作实验总结,[干货分享]Python文件操作技巧总结

引言

小伙伴们,今天给大家讲解一下python程序下的文件操作完整技巧梳理,都是笔者总结的干货。通过本文阅读,不仅可以带来生产力提升,也可以开发小脚本为生活带来乐趣。

217558760_1_20210313073446880        首先不知道大家对python有没有了解,不太会用的小伙伴可以在下面回复,我将出一期新的python教程进行前置学习,也会针对大家的情况提供初学资料。那么现在呢,假定你已经入门了Python,但是对文件操作还不熟练,技巧也不清楚,那么就来一起进行本文之旅吧。

python文件操作总体来说,还是比较简单的,但是各个模块之间比较混乱,官方自带的库提供的功能各有不一,带来很多不便之处。本文通过笔者数年python经验总结,帮你们做一次完整的梳理,提供各种操作的技巧示范。

各官方库的简介

我们利用python文件操作,一般是利用官方提供给我们的库,如os,pathlib,shutil等,一般很少使用第三方的库,因为这些已经足够简单。那么首先让大家看看官方文档的描述吧。官方库文档介绍os依赖操作系统的功能的快捷函数。

pathlib用适用于不同操作系统的语法,来表示文件系统路径

shutil在文件和文件集合上提供了许多高级操作

接下来开始正式的技巧环节。

技巧一:文件信息查看

查看文件信息,使用os或者pathlib的stat函数即可。熟悉linux的小伙伴,会发现linux命令行也是用的stat。import os

print(os.stat('test1.txt'))

#输出:os.stat_result(st_mode=33206, st_ino=1688849860300737, st_dev=518802029, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1614757783, st_mtime=1614757783, st_ctime=1614757783)

from pathlib import Path

print(Path('test1.txt').stat())

#输出:os.stat_result(st_mode=33206, st_ino=1688849860300737, st_dev=518802029, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1614757783, st_mtime=1614757783, st_ctime=1614757783)

可以看到,输出一个类,常用的成员解释如下。官方库文档介绍st_size用适用于不同操作系统的语法,来表示文件系统路径

st_atime最后访问时间

st_mtime最后修改时间

st_ctimelinux为“最后修改时间”, windows为“创建时间”

这里面的时间是距离1970年1月1日(UTC)以来有多少秒,我们可以这样转为年月日。至于详细的时间操作技巧,可以见后续的文章,别忘关注哦。from datetime import datetime

print(datetime.fromtimestamp(1614757783))

# 输出:2021-03-03 15:49:43

技巧二:文件/文件夹的创建

·文件的创建可以简单的用 with open即可,这里不再赘述。·文件夹的创建,涉及到是否覆盖或跳过已存在的文件夹的问题。所以建议使用 pathlib 库里面的 mkdir 函数。Path.mkdir() 函数有个参数 exist_ok,为True 时允许已存在,运行则跳过。为False时不允许存在,运行则报错。print(Path('test').mkdir()) # exist_ok 默认False

print(Path('test').mkdir(exist_ok=True)) # 存在则跳过

print(Path('test').mkdir(exist_ok=False)) # 存在则报错

技巧三:文件/文件夹的删除

文件或文件夹的删除,都可以用 shutil库的rmtree方法。其中有个 ignore_errors参数,可以指定是否忽略错误。注意谨慎删除哦。shutil.rmtree('test1.txt') # exist_ok默认False

shutil.rmtree('test1.txt', ignore_errors=True) # 忽略错误

shutil.rmtree('test1.txt', ignore_errors=False) # 不忽略错误

技巧三:文件/文件夹修改

文件内容修改,简单使用 with open 即可,不再赘述。

文件或文件夹的名称修改,可以用shutil的move函数。import shutil

shutil.move('test1.txt', 'test2.txt')

技巧三:文件/文件夹复制、剪切

文件夹复制、剪切,可以分别用shutil的copy函数和move函数。import shutil

shutil.copy('test1.txt', 'test2.txt')

shutil.move('test1.txt', 'test3.txt')

技巧三:文件夹遍历

文件夹遍历,可以用pathlib的Path.glob函数。该函数输出一个Generator生成器,可以直接for循环,也可以用list()转为列表。

递归遍历可以在搜索项之前加上**/ 前缀。from pathlib import Path

print(list(Path('.').glob('*.txt')))

print(list(Path('.').glob('**/*.txt')) # 递归遍历子文件夹

技巧五:文件/文件夹查找

参见技巧四,先文件夹遍历,再判断即可。

好了,相关的文件技巧已经介绍完了,笔者平时做python开发,差不多已经够用了。当然也偶尔开发小脚本,批量管理文件,增加生活乐趣,有兴趣的可以留言,后续跟进。

不喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7价 半导体掺杂_天津大学封伟团队:新型半导体二维原子晶体锗硅烷材料的带隙调控...

xxxxxxxxxxxx【研究背景】xxxx新型二维半导体原子晶体兼具原子级厚度、纳米级层状结构、极高的载流子迁移率,是构建未来高性能纳米光电器件的核心材料。带隙是二维半导体电子器件和光电子光器件中最重要的基本参数之一,是影响二维半导体电子器件开关比和…

vs2017怎么安装python包,vs2017安装pygame,vs2017安装python第三方包

vs2017有独立的python环境;所以想在vs2017开发python并使用第三方包,需要在vs2017中操作,完成第三方包的安装。一,查看vs2017有哪些版本的python,当前使用的是哪个版本工具--》Python--》Python环境可以看到vs2017包含…

基于opencv在摄像头ubuntu根据视频获取

基于opencv在摄像头ubuntu根据视频获取 1 工具 原料 平台 :UBUNTU12.04 安装库 Opencv-2.3 2 安装编译执行步骤 安装编译opencv-2.3 參考http://blog.csdn.net/xiabodan/article/details/23547847 提前下载OPENCV源代码包 官方&am…

Flask构建微电影(二)

第三章、项目分析、搭建目录及模型设计 3.1.前后台项目目录分析 微电影网站 前台模块后台模块前台(home) 数据模型:models.py表单处理:home/forms.py模板目录:templates/home后台(admin) 数据模…

Android Studio开发第四篇版本管理Git(下)

前面一片介绍了在as下如何关联远程仓库,这篇就介绍在开发过程中怎么应用。 提交Push 如果本地开发代码有改动了或者你觉得某功能做完了,你打算把改动代码提交到远程仓库,这个时候很简单, 还是在工具栏找到VSC箭头朝上的按钮。 这时…

容器大小_无根容器内部结构浅析

随着云计算的发展,容器变得越来越流行,同时也产生了实现容器的新方案,其中之一就是无根容器。本文介绍了无根容器的内部结构,并分析了无根容器网络组件中的漏洞。随着云计算的发展,容器变得越来越流行,同时…

php layout布局文件,layout(布局) - jQuery EasyUI中文文档 - EasyUI中文站

Layout(布局)使用$.fn.layout.defaults重写默认值对象。布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。布局可以进…

Bootstrap系列 -- 11. 基础表单

表单主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括:文本输入框、下拉选择框、单选按钮、复选按钮、文本域和按钮等。其中每个控件所起的作用都各不相同,而且不同的浏览器对…

how to use webpart container in kentico

https://docs.kentico.com/k11/developing-websites/developing-websites-using-the-portal-engine/using-web-part-containers Webpart Container webpart container中的orangebox, SELECT * FROM dbo.CMS_WebPartContainer WHERE ContainerDisplayName LIKE %orange%; 把…

excel如何找到高频词_拟录取后:应届生和往届生档案哪里找;重灾院校区;高频词背诵表...

今日消息1、应届生和往届生档案哪里找?2、重灾院校区3、考研云督学班高频词背诵表汇总1、应届生和往届生档案哪里找?往年这个时候论文答辩、复试已经结束,已经进入毕业季!现在你们毕业答辩结束了吗?你们都顺利上岸吗&a…

oracle 中表,oracle中表操作

1.1:创建一表空间 TABLESPACE01,初始大小50MB,允许自动增长数据库文件,每次增长10MBCREATE TABLESPACE TABLESPACE01LOGGINGDATAFILE’F:\TABLESPACE\DATA01.DBF’ SIZE 50MREUSE AUTOEXTEND ON NEXT 10M;1.2:创建用户 (oracle12c)此处创建用户报错,原因…

放大镜_指甲钳上有放大镜?再也不怕夹到肉了

扒姬说:剪指甲钳最害怕什么,是没注意夹到肉有没有。尤其是近视的人和手脚不便的老人,或者是给较小的宝宝剪指甲时,总是看不清指甲边缘的形状、刀口的位置,一不小心就会夹到手指、脚趾。今天,扒姬推荐一个特…

linux学习规划

转载于:https://www.cnblogs.com/Alight/p/4601510.html

oracle如何在本地建库,oracle在本地建库

oracle数据库本地建库,需要使用oracle安装路径下面的-配置和移植工具-Database Configuration Assistant 通过一次点击下一步进行建库。 在库建好后,使用系统账号 User:sys password:sys Connect as SYSDBA在客户端进行登录 --创建表空间 Create tablesp…

「BZOJ1485」[HNOI2009] 有趣的数列 (卡特兰数列)

「BZOJ1485」[HNOI2009] 有趣的数列 Description 我们称一个长度为2n的数列是有趣的&#xff0c;当且仅当该数列满足以下三个条件&#xff1a; (1)它是从1到2n共2n个整数的一个排列{ai}&#xff1b; (2)所有的奇数项满足a1<a3<…<a2n-1&#xff0c;所有的偶数项满足a2…

wedo2.0编程模块介绍_能量黑科技模块系列十:RFID魔块

RFID魔块RFID此模块可以对套件配套的RFID卡或者空白RFID卡进行读写&#xff0c;用于权限验证的DIY制作。常规的公交卡、地铁卡是无法进行写入&#xff0c;但可以读取UID号。配套RFID卡内存为1K&#xff0c;有16个分区&#xff0c;每个分区有3个数据块可进行写入此模块可以对套件…

[SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据

通过SoapUI发送POST请求&#xff0c;请求的body是JSON格式的数据&#xff1a; data{"currentDate":"2015-06-19","reset":true} 而且通过Fiddler抓取页面报文 Content-Type 是 application/x-www-form-urlencoded 一开始我将Content-Type appl…

oracle -239报错,解决: ./check_oracle_health --connect orcl --mode connection-time 报错的问题...

错误提示./check_oracle_health --connect orcl --mode connection-timeCRITICAL - cannot connect to orcl. install_driver(Oracle) failed: Cant locate DBD/Oracle.pm in INC (INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_per…

el-button 图标显示在字后边_Excel和Visio联姻,自动生成跨职能流程图,还能用图标标记状态,太牛了!...

正文共&#xff1a;1332 字 21 图预计阅读时间&#xff1a; 4 分钟Visio是Office软件系列中的负责绘制流程图和示意图的软件&#xff0c;创建具有专业外观的Visio图表&#xff0c;以便用户更好地理解和分析。企业管理中&#xff0c;业务流程在不同部门间流转&#xff0c;涉及提…

【SpringBoot笔记】SpringBoot整合Druid数据连接池

废话少说&#xff0c;按SpringBoot的老套路来。 【step1】&#xff1a;添加依赖 <!-- 数据库连接池 --> <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.25</version> </depende…