python文件与目录操作

目录

文件编码

文件的读取

打开文件

mode常用的三种基础访问模式

读取文件

关闭文件

with open语法

文件的写入操作

文件综合案例

a.txt内容

代码实现

b.txt文件

目录操作

前言

os模块

具体方法 

os.path模块

具体方法 

文件编码

前言:由于计算机只能识别0和1,所以我们丰富的文本文件通过使用编码技术(密码本)将内容翻译成0或1存入

编码技术:即翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译成可识别的内容

注意:计算机中有许多可用的编码(UTF-8、GBK、Big5)等,不同的编码,将内容翻译的二进制也是不同的,所以要使用正确的编码,才能对文件进行正确的读写操作

文件的读取

前言:内存中存放的数据在计算机关机后就会消失,要想长久的保存数据,就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索因此引入了文件的概念

注意:

  • 一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名
  • 操作系统以文件为单位管理磁盘中的数据。
  • 文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别
  • 在生活中,文件的操作主要包括打开、关闭、读、写等操作

打开文件

语法:文件对象=open(name,mode,encoding=编码格式)

参数解释 

  • name:要打开得目标文件名的字符串(可以包含文件所在的具体路径)
  • mode:设置打开文件的模式(访问模式):只读、写入、追加等
  • 编码格式:文件编码的格式(推荐使用UTF-8)

注意:

  • 里面传入的三个参数均为字符串格式 
  • 因为encoding并不是第三个参数,所以不能用顺序传参

mode常用的三种基础访问模式

读取文件

语法:变量=文件对象.read(num)

解释:num表示要从文件中读取的数据长度(单位是字节),若没有传入num,那么就表示读取文件所有的数据

语法:变量=文件对象.readlines()

解释:readlines可以按照行的方式把整个文件的内容进行一次性读取,并且返回的是一个列表,其中的每一行数据为一个元素

语法:变量=文件对象.readline()

解释:一次读取一行内容

for循环读取文件行

for line in 文件对象:print(line)

理解:每一个line临时变量,就记录了文件的一行数据 

注意:我们在读取文件时,只要该文件对象打开之后,后面不管调用什么文件读取方法,他都会续接上一次读取文件的方法。

关闭文件

语法:文件对象.close()

注意:若不调用close,同时程序没有停止运行,那么这个文件将一直被python程序占用

with open语法

with open(name,mode,encoding) as 文件对象变量:f.readlines()

注意:通过with open的语句块对文件进行操作,可以在操作完成后自动关闭close文件,避免遗忘掉close方法

文件的写入操作

写入文件到内存:文件对象.write(写入的内容)

文件刷新:文件对象.flush()

注意

  • 使用open函数对于w模式写入文件的时候,文件不存在则会创建文件,文件存在则会覆盖原文件内容;对于a模式文件不存在则会创建文件,文件存在则会在源文件基础上追加内容
  • 这里a参数的文件追加是关闭文件后也可以追加,若没关闭文件对于w参数调用写文件始终是追加模式
  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush/close的时候,内容会真正写入硬盘
  • 这样做的目的是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写入硬盘)

文件综合案例

需求:将a.txt文件中的内容备份到b.txt文件中

a.txt内容

代码实现

#打开a.txt文件
fr=open("D:/test/a.txt","r",encoding="UTF-8")
#打开b.txt文件,准备写入
fw=open("D:/test/b.txt","w",encoding="UTF-8")
#读取a.txt文件的所有数据
for line in fr:#将每次读取的数据写入b.txtfw.write(line)
#将内存中的数据刷新至硬盘
fw.flush()
#关流
fw.close()
fr.close()

b.txt文件

目录操作

前言

  • os模块是python内置与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同操作系统上运行,得到的结果可能不一样
  • os模块与os.path模块用于对目录或文件进行操作,其是python系统自带的一个模块

os模块

使用前:import os

具体方法 

import os
#执行命令行语句
os.system("python -V")
#直接启动文件
os.startfile("D:/test/a.txt")
#返回指定路径下的文件和目录信息
print(f"文件和目录信息:{os.listdir('D:/app/youdao')}")
#创建目录
os.mkdir("D:/test/dir1")
#创建多级目录
os.makedirs("D:/test/dir2/dir3")
#删除目录
os.rmdir("D:/test/dir1")
#删除多级目录
os.removedirs("D:/test/dir2/dir3")
#设置当前工作目录
os.chdir("D:/test")
#当前的工作目录
print(f"当前的工作目录为{os.getcwd()}")

os.path模块

使用前:import os.path

具体方法 

import os.path
#获取当前位置的绝对路径(end.py为当前位置的文件)
print(os.path.abspath("end.py"))
#判断当前文件夹下的文件或目录是否存在
print(os.path.exists("end.py"))
#将目录与目录或目录与文件名拼接
print(os.path.join("D\python", "app.txt"))#D\python\app.txt
#分离路径和文件名
print(os.path.split("D:\projects\end.py"))#('D:\\projects', 'end.py')
#分离文件名和扩展名
print(os.path.splitext("app.py"))#('app', '.py')
#从一个目录中提取文件名
print(os.path.basename("D:\projects\end.py"))#end.py
#从一个目录中提取目录不包括文件名
print(os.path.dirname("D:\projects\end.py"))#D:\projects
#判断是否为目录(有end.py不是)
print(os.path.isdir("D:\projects\end.py"))#False

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

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

相关文章

STM32的电动自行车信息采集上报系统(学习)

摘要 针对电动自行车实时监管不便的问题,设计了一种基于STM32的电动自行车信息采集系统,通过获取电池、位置和行驶状态信息并上报到服务器中,实现实时监管。 通过多路串口请求电池、行驶状态和位置信息,以并发方式进行数据接收、…

FBX SDK开发快速上手指南

一段时间以来,我一直想制作一个 FBX Exporter 将 FBX 文件转换为我自己的格式。 整个过程不是很顺利,主要是FBX的官方文档不是很清楚。 另外,由于 FBX 格式被许多应用程序使用,而不仅仅是游戏引擎,因此提供的示例代码没…

【LeetCode 75】第二十题(2215)找出两数组的不同

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 找出两个数组中不一样的数,将nums1中有的数而nums2没有的数放在res[0]中,将nums2中有的数二nums1没有的数放在res[1]中. 那我们…

python数据容器

目录 数据容器 反向索引 list列表 语法 案例 列表的特点 列表的下表索引 list的常用操作 list列表的遍历 while循环遍历 for循环遍历 tuple元组 前言 元组定义 元组特点 获取元组元素 元组的相关操作 元组的遍历 while循环遍历 for循环遍历 字符串 前言…

dvwa靶场通关(十一)

第十一关&#xff1a;Reflected Cross Site Scripting (XSS) low 这一关没有任何防护&#xff0c;直接输入弹窗 <script>alert(xss)</script> 打开网页源代码&#xff0c; 从源代码中我们可以看到&#xff0c;前面是输出的第一部分Hello&#xff0c;我们输入的脚…

IL汇编实现两数相加输出结果

话说前面没有实现IL汇编2数相加&#xff1b;鼓捣了一下&#xff0c;实现的代码如下&#xff1b; .assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 8.entrypoint.locals init (int32 V_0, int3…

压力测试与测试工具jmeter的介绍

目录 一、性能指标 二、jmeter &#xff08;一&#xff09;JMeter 安装 &#xff08;二&#xff09;JMeter 压测示例 1、添加线程组 2、添加 HTTP 请求 3、添加监听器 4、启动压测&查看分析结果 &#xff08;三&#xff09;JMeter Address Already in use 错误解决 压力测…

微信小程序真机防盗链referer问题处理

公司使用百度云存储一些资源&#xff0c;然后现在要做防盗链&#xff0c;在CDN加入Referer白名单后发现PC是正常的&#xff0c;微信小程序无法正常访问资源了。然后是各种查啊&#xff0c;然后发现是微信小程序不支持Referer的修改&#xff0c;且在小程序开发工具是Referer是固…

ppt压缩文件怎么压缩最小?文件压缩技巧分享

在日常的工作和学习中&#xff0c;难免会遇到PPT太大&#xff0c;需要将其压缩变小的情况&#xff0c;但很多朋友还不知道怎么压缩PPT文件&#xff0c;下面就给大家分享几个简单的方法&#xff0c;分分钟缩小过大的PPT文件。 一、PowerPoint PowerPoint就是微软公司的演示文稿…

【BASH】回顾与知识点梳理(六)

【BASH】回顾与知识点梳理 六 六. 管线命令 (pipe)6.1 撷取命令&#xff1a; cut, grepcutgrep 6.2 排序命令&#xff1a; sort, wc, uniqsortuniqwc 6.3 双向重导向&#xff1a; tee6.4 字符转换命令&#xff1a; tr, col, join, paste, expandtrcoljoinpasteexpand 6.5 分区命…

自定义elementui的主题

通常情况下&#xff0c;我们使用elementui框架的时候默认组件的主题都是白色的&#xff0c;比如&#xff1a; 但是如果想自定义主题&#xff0c;改变主题颜色&#xff0c;以及各种默认颜色&#xff0c;其实也不难&#xff1a; 配置默认主题&#xff0c;选好后点击下载 在vu…

【websocket - Tornado】简易聊天应用

1、背景 项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主…