python高级 之(五) --- 文件操作

文件操作

 1 """
 2 在程序中操作的文件内容:
 3     1. 读取文件中的内容
 4     2. 向文件中写入内容
 5 
 6 首先:
 7     在程序中与文件建立一个通道,通过通道操作文件指针,达到所要的结果
 8     向文件中不管读和写,在程序中都需要打开一个文件
 9 
10 文件打开方式:open()。会返回一个操作文件的手柄,可以理解为程序与文件之间建立的通道
11     handle = open(文件的路径,打开文件的模式--读、写,encoding="操作的文件到的编码方式")
12 详解:
13     1。文件路径既可以使用相对路径,也可以使用绝对路径
14     2。打开方式:
15         r --- 只读,如果指定路径对应文件不存在,回报错
16         w --- 只写,如果文件不存在,会创建新文件,如果文件存在 会清空文件中原来的内容 文件指针位于0处
17         a --- 只写,如果文件不存在,会创建新文件,如果存在 不会清空原文件的内容 文件指针位于文件的末尾
18 
19         r/w/a 这种模式,操作的字符串数据
20         rb/wb/ab  这种模式操作的是字节数据
21         r+/w+/rb+/wb+/ab+ 带有 + 号的是可读可写
22     3。编码方式:
23         urg-8/gbk
24 注意:程序无法处理程序之外产生的垃圾。需要手动处理垃圾(手动把通道关闭)
25    如果是字节模式处理数据打开文件时,不需要设置编码方式,否则会报错
26 """

文件读取

 1 #  文件读取
 2 """
 3 读取文件内容,是通过文件手柄来完成的
 4 读取的方式:
 5     read([size])
 6         如果不为size设值,默认是将文件中的内容全部读取
 7         如果设置size值:若文件中所剩内容小于size,文件剩多少读多少
 8             模式设置为"r", 表示读取size个字符
 9             模式设置为"rb", 表示读取size个字节
10     readling()
11         一行一行读取
12             模式设置为"r", 表示读取的是一行的字符串数据
13             模式设置为"rb", 表示读取是一行的字节数据
14     readlines()
15         按照行的样式,将文件中所有的数据读出。结果是列表类型的,一行为一个元素存放在列表中
16             模式设置为"r", 列表中的每个元素是字符串类型
17             模式设置为"rb", 列表中每个元素是字节数据类型的 
18 """
  • read()
 1 # read()。以 r 的形式 读取数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 # 通过手柄操作文件指针,读取数据
 9 data_str = handle.read()
10 print(data_str)
11 
12 # 设置读取大小时,读取部分之后 文件指针到了3的位置,再读的话从第4位置开始读取
13 data_string = handle.read(3)
14 print(data_string) # 结果:窗前名
15 
16 # 关闭通道
17 handle.close()
18 
19 # ------------------------------------------------------------------ #
20 
21 # read()。以 rb 的形式 读取数据
22 
23 # 设置操作文件的路径
24 path = r"静夜思.txt"
25 # 在程序中打开文件,建立文件与程序的通道。 以字节型数据读取
26 handle = open(path,"rb")
27 
28 # 以rb形式进行读取
29 data = handle.read(3)
30 print(data)
31 print(data.decode(encoding="utf-8"))
32 
33 # 关闭通道
34 handle.close()
  • readline()
 1 # readline()。以 r 的形式读取一行数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 # 通过手柄操作文件指针,读取数据
 9 data_str = handle.readline()
10 print(data_str)
11 
12 # 关闭通道
13 handle.close()
14 
15 # ------------------------------------------------------------------------ #
16 
17 # readline()。以 rb 的形式读取一行数据
18 
19 # 设置操作文件的路径
20 path = r"静夜思.txt"
21 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
22 handle = open(path,"rb")
23 
24 # 通过手柄操作文件指针,读取数据
25 data_str = handle.readline()
26 print(data_str) # 结果:b'\xe7\xaa\x97\xe5\x89\x8d\xe5\x90\x8d\xe5\xa4\x9c\xe5\x85\x89\n'
27 print(data_str.decode(encoding="utf-8"))
28 
29 # 关闭通道
30 handle.close()
  • readlins()
 1 # readlines()。以 r 的形式读取一行数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 lines = handle.readlines()
 9 print(lines) # 结果: ['窗前名夜光\n', '疑是地上霜\n', '举头望明月\n', '低头思故乡']
10 
11 # 关闭通道
12 handle.close()
13 # ------------------------------------------------------------------------------#
14 
15 # readlines()。以 rb 的形式读取一行数据
16 
17 # 设置操作文件的路径
18 path = r"静夜思.txt"
19 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
20 handle = open(path,"rb")
21 
22 lines = handle.readlines()
23 print(lines)
24 # 此时 列表中的数据全部是字节类型的。将列表中的数据 全部设置成字符串类型的
25 # 注意:⚠️ 字节数据只能和字符串进行编码解码,列表不可以
26 new_list = [ele.decode("utf-8") for ele in lines]
27 print(new_list)
28 
29 # 关闭通道
30 handle.close()
  •  大文件读取
1 """
2 读取大型文件:
3     流程,读取模式是rb。以字节的形式进行读取的
4     将文件内容分批按照1024的倍数进行读取
5     分批读取结束点:可以获取文件的大小后,与每次读取的累加数量进行比较,
6 
7 """
 1 import os
 2 path = r"/Users/guoyapeng/Downloads/day12/20.数据持久化.mp4"
 3 
 4 
 5 # 打开路径指向的文件
 6 handle = open(path,"rb")
 7 
 8 # 获得文件的大小
 9 file_size = os.path.getsize(path)
10 print(file_size)
11 
12 # 分批进行读取。设置每批读取数据的大小,一般设置为1024的倍数。
13 read_size = 1024
14 
15 # 已经读取的字节数据
16 has_read = 0
17 
18 # 循环读取,已读的 < 文件大小
19 while has_read < file_size:
20     data = handle.read(read_size)
21     print(data)
22     # 为已读取进行累加
23     has_read  +=  read_size
24     print("读取完毕")
25 
26 # 关闭通道
27 handle.close()

文件写入

 1 # 写入文件
 2 """
 3 打开文件模式:
 4     w/wb --- 以字符串/字节数据向文件中写入内容
 5         如果文件不存在,创建文件;文件存在,会清空文件中的内容,文件指针位于0处
 6     a/ab --- 以字符串/字节数据向文件中写入内容
 7         如果文件不存在,创建文件;文件存在,不会清空文件中的内容,文件指针位于末尾处
 8 
 9 写入的方法:
10     write(字符串/字节数据)
11         w/a --- 字符串数据
12         wb/ab --- 字节数据
13     writelines(列表)
14         与readlines是一对。
15         列表中的数据 是要写入的内容
16         如果写入模式是 w/a --- 写入的列表内容是字符串类型
17         如果写入模式是 wb/ab --- 写入的列表内容是字节类型
18 
19 刷新 flush()
20     刷新通道,将通道中的数据快速到达文件中
21 
22 """
23 """==========================================================="""
24 
25 # write() 以a/w的形式写入
26 # 打开文件获得与文件关联的通道
27 path = r"春晓.txt"
28 
29 # 创建写入文件,并设置通道
30 handle = open(path,"a",encoding="utf-8")
31 
32 # 写的方法
33 handle.write("\n夜来风雨声")
34 handle.flush()
35 
36 # 关闭通道
37 handle.close()
38 
39 """=========================================================="""
40 
41 # write()  以ab/wb的形式写入
42 # 打开文件获得与文件关联的通道
43 path = r"春晓.txt"
44 
45 # 创建写入文件,并设置通道
46 handle = open(path,"ab")
47 
48 # 写的方法
49 handle.write("\n夜来风雨声ab".encode("utf-8"))
50 handle.flush()
51 
52 # 关闭通道
53 handle.close()
54 
55 """============================================================="""
56 
57 # writelines() 以a/w的形式写入
58 # 打开文件获得与文件关联的通道
59 path = r"春晓.txt"
60 
61 # 创建写入文件,并设置通道
62 handle = open(path,"a",encoding="utf-8")
63 
64 # 写的方法
65 lines = ["花落知多少\n","小桥流水人家aaa\n"]
66 handle.writelines(lines)
67 handle.flush()
68 
69 # 关闭通道
70 handle.close()
71 
72 """=============================================================="""
73 
74 # writelines()  以ab/wb的形式写入
75 # 打开文件获得与文件关联的通道
76 path = r"春晓.txt"
77 
78 # 创建写入文件,并设置通道
79 handle = open(path,"ab")
80 
81 # 写的方法
82 lines = ["花落知多少\n".encode("utf-8"),"小桥流水人家\n".encode("utf-8")]
83 handle.writelines(lines)
84 handle.flush()
85 
86 # 关闭通道
87 handle.close() 

文件拷贝

 1 """
 2 文件拷贝:操作的还是文件的内容
 3     通过读取文件内容 和写入文件内容完成拷贝
 4 拷贝思路:
 5     源文件 读取文件
 6     目标文件 写入文件
 7 
 8 """
 9 import os
10 
11 # 源文件路径
12 src_path = r"/Users/guoyapeng/Downloads/day12/20.数据持久化.mp4"
13 
14 # 目标存储路径
15 desc_path = r"/Users/guoyapeng/Downloads/数据持久化.mp4"
16 
17 # 在程序中打开这两个路径文件
18 src_handle = open(src_path,"rb")
19 desc_handle = open(desc_path,"wb")
20 
21 # 循环读取。设置每次读取的数量
22 read_size = 1024 * 10
23 
24 # 已经读取的数据的大小
25 has_read = 0
26 
27 # 文件大小
28 file_size = os.path.getsize(src_path)
29 
30 while  has_read < file_size:
31     data = src_handle.read(read_size)
32     # 向目的文件内 写入
33     desc_handle.write(data)
34     desc_handle.flush()
35     # 设置已读的数据
36     has_read += read_size
37 
38 # 关闭路径
39 src_handle.close()
40 desc_handle.close()

with语句

 1 """
 2 为了简化代码
 3     程序无法处理程序之外产生的垃圾,所以需要手动关闭通道
 4     使用with语句打开通道 可以不用手动关闭。with语句执行完通道会自动关闭
 5 
 6 格式:
 7     with open(文件路径,打开模式,编码方式) as 变量名1,open(文件路径,打开模式,编码方式) as 变量名2,、、、[后面可以拼多个open()]
 8 、、open(文件路径,打开模式,编码方式) as 变量名n:
 9         [缩紧]执行文件的操作
10 """
 1 # 读
 2 with open("静夜思.txt","r",encoding="utf-8") as handle:
 3     data_str = handle.read()
 4     print(data_str)
 5 
 6 
 7 # 写
 8 with open("春晓.txt","w",encoding="utf-8") as handle:
 9     handle.write("with用法")
10     handle.flush()

数据持久化

 1 """
 2 永久性的保存数据,没有数据库想要进行本地保存,只能借助于文件
 3 可以保存任意类型的数据 需要借助模块:pickle
 4 
 5 保存数据
 6     pickle.dump(保存的数据,数据存入的指定文件)
 7     保存数据,将数据写入到指定文件。这种情况打开文件的模式只能使用字节模式打开
 8 
 9 读取数据
10     变量名 = pickle.load(数据存入的指定文件)
11     将数据在文件中读取出来。需要打开文件,只能使用字节模式
12 """
 1 import pickle
 2 
 3 # 存入数据 一般情况存入的是一个容器
 4 with open("data.txt","wb") as handle:
 5     pickle.dump([10,20,3,45,"a"],handle)
 6     
 7 # 取出数据
 8 with open("data.txt","rb") as handle:
 9     data = pickle.load(handle)
10     print(data)
11    

转载于:https://www.cnblogs.com/TMMM/p/11404157.html

第10课 python文件操作的高级用法 这些高级用法案例展示了Python在文件操作方面的强大功能和灵活性,你可以根据实际的应用场景选择合适的方法来更高效、更优雅地处理文件相关的任务。当处理非常大的文件时,将整个文件内容读入内存可能会导致内存不足,使用内存映射文件可以让程序像操作内存一样操作文件的一部分,提高效率。在Python中,如果要将复杂的数据结构(如自定义的类对象、嵌套的字典和列表等)保存到文件中,并在之后能够恢复它们,模块提供了许多用于文件和文件夹操作的便捷函数,比直接使用底层的文件系统操作更加高效和安全。 阅读详情

相关推荐

TOPSIS与熵权法实战:从数学建模到Python实现(附国赛案例分析)

本文详细解析了TOPSIS(逼近理想解排序法)与熵权法在数学建模中的协同应用,并通过Python代码实现完整流程。文章以国赛案例为背景,从指标正向化、数据标准化、熵权法计算客观权重,到TOPSIS综合排序,手把手指导如何解决多指标决策问题,为数据分析与建模提供了一套可复用的实战工具箱。

weixin_29079643的博客 245

Python高阶用法总结

好用的高阶python语法,公司项目一定会用到哦!

lilang2020的博客 1276

KV STUDIO的安装与实践(一)

KV STUDIO是一种软件开发工具,用于编写、调试和管理基于Key-Value(键-值)存储的应用程序。KV STUDIO提供了一个集成开发环境(IDE),使开发人员可以方便地创建和管理键-值数据库,并编写逻辑和业务规则来操作和查询这些数据。它支持多种编程语言和平台,并提供了丰富的API和工具来简化开发过程。使用KV STUDIO,开发人员可以快速构建高效、可靠的键-值存储系统,并实现各种应用程序,如缓存、会话管理、配置存储等。本次使用plc进行案例讲解,结合小编的亲身经历,仅供参考!

weixin_47514459的博客 6359

python学习笔记:第八天

文件操作:   1.文件基本操作方法: 1.打开文件2.文件操作3.文件关闭三种基本的操作模式 r(只可读) w(只可写) a(追加)   2.读文件: # f = open('静夜思','r',encoding='utf-8')# n = f.read(5)# print(n)# f.close() 3.文件写操作(会覆盖)# f = open('静夜思','w',encod...

A16161的博客 258

HDLbits找茬实战:5个Verilog仿真Bug修复案例,新手避坑指南

本文通过HDLbits平台上的5个典型Verilog仿真Bug案例,详细解析了多路选择器位宽不匹配、模块实例化端口映射错误等常见问题,提供实用的修复方案和调试技巧,帮助Verilog新手快速掌握代码验证与仿真技能,避免常见陷阱。

weixin_42653691的博客 162

【OpenAirInterface知识-3】OAI端到端部署之5G基站部署

在上一篇文章中已经完成了5G核心网的部署,本篇文章将介绍OAI 5G基站的部署过程。

起名字难上难的博客 3421

文件操作

---恢复内容开始--- #文件操作基本流程 打开→操作→关闭 打开文件:f = open ('静夜思', 'r', encoding='utf8') 操作句柄 = 打开(创建) (‘文件名’ ,‘打开方式’(r,w,a) , 编码方式) 操作文件:data = f.read(3) #读取文件前3个字符print(data) #将读取的结果打印出来关闭文件:f.close...

weixin_30248399的博客 239

5、癌症数据预处理技术与深度学习在癌症预测中的应用

本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。

alice7model的博客 123

Python中25个高级开发技巧,工作必备

Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来 Pythonic 一点。如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了。 列表推导式 >>> chars = [ c for c in 'python' ] >>> chars ['p', 'y', 't', 'h', 'o', 'n'] 字典推导式 >>> dict1 =

Python热爱者的博客 1852

无人机——电机篇(一)

1. 电机的定义 电机俗称“马达”,是无人机的动力来源,无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度,使得无人机能够盘旋空中,上升或下降,或向各个方向移动。2. 电机的分类 电机分为:“无刷电机”和“有刷电机” - 无刷电机:是采用半导体开关器件来实现电子换向,具有可靠性高、低干扰、低噪声低、寿命长等优点。一般应用在稍大型的飞行器,载重大,可以有更广泛的用途。 - 有刷电机:是内含电刷装置的将电能转换成机械能(电动机)或将机械能转换成电能(发电机)的旋转电机。有刷电机是所有电机的基

weixin_46066938的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python新手必看:用with open()读文件总报错?这5个检查步骤帮你搞定FileNotFoundError

本文为Python新手提供了解决`FileNotFoundError`的5个关键步骤,详细解析了`with open()`文件操作中的常见错误。从检查拼写、理解工作目录到路径处理和异常预防,帮助开发者快速定位和解决文件读取问题,提升代码健壮性。特别适合遇到`Errno 2`或`No such file or directory`报错的初学者。

chudan0503的博客 476

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深入浅出Python——Python高级语法之文件操作

前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢! 文章目录一、文件操作的作用二、文件的基本操作1. 文件操作步骤1.1 打开1.1.1 打开文件模式1.1.2 快速体验2.1 文件对象方法1.2.1 写1.2.2 读1.2.3 seek()3.1 关闭三、文件备份1. 步骤2. 代码实现3. 思考四、文件和文件夹的操作1. 文件重命名2. 删除文件3. 创建文件夹4. 删除文件夹5. 获

路虽远,行则必至! 4481

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Python的高级文件操作

Python中文件高级操作,大家一起来看看,都有哪些(一起努力,咱们顶峰相见)

精益求精,永无止境,永远在路上! 1065

Python文件操作完全指南:从基础到高级应用

在编程世界中,文件操作是最基础也是最重要的技能之一。无论是处理数据、保存配置、记录日志,还是进行数据分析,我们都需要与文件打交道。Python作为一门简洁而强大的语言,提供了丰富的文件操作功能。

vvilkin的学习备忘 1567

python之高级的文件操作shutil模块

shutil --High-level file operations 高级的文件操作模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作。比如说:绝对路径,父目录…… 但是,os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没有提供。  而本章所讲的shutil则就是对os中文件操作的补充。–移动 复制 打包 压缩 解...

Python热爱者的博客 538

python 文件操作,最全的一个(转)

Python读写、创建文件原文链接:http://www.cnblogs.com/juandx/p/4962089.html python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除

沉醉不知归路的博客 2万+

❤️「Python」进阶,高级语法一网打尽!高级函数+文件操作,不看后悔系列~❤️

「Python」进阶,高级语法一网打尽!不看后悔系列~

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 2655

Python中常见文件操作,纯干货

Python文件操作一、关于文件二、读写文件简单操作三、文件权限四、文件高级操作五、大文件的读取基本方法常用函数 一、关于文件 文件的作用:把一些数据储存起来 使用文件流程: 打开文件,读写文件,关闭文件 二、读写文件简单操作 1.读取文件 #打开文件 file = open("demo1/1.txt",mode="r") #读取文件 ret = file.read() #file只是变量,read是读取函数 print(ret) #关闭文件 file.close() #第一个参数的文件的路

a1309525802的博客 6972

Python文件操作指南:从基础到高级

文件操作是Python编程的重要组成部分,本文深入探讨了文件的打开与关闭、读取与写入、文件迭代、异常处理、高级文件操作等各个方面。掌握文件操作技巧将帮助你更有效地管理和处理文件,无论是在数据处理、日志记录、配置文件读取还是其他各种应用场景中。希望这篇文章对你理解和应用Python文件操作提供了全面的指导。文件操作是Python编程中不可或缺的技能,它为你的应用程序提供了强大的文件处理能力。

努力是为了站在万人之中,成为别人的光 1万+

Python保姆级教程(五):文件操作

摘要:本文系统介绍了Python文件操作的核心知识,包括文件基本概念、文本/二进制文件的读写方法、上下文管理器使用以及os模块的目录管理功能。重点讲解了open()函数、文件模式选择、with语句自动管理资源等实用技巧,并提供了日志分析实战案例。文章强调文件操作中的注意事项:正确选择文件模式、确保资源释放、大文件分块处理等,帮助读者掌握文件处理的核心技能,为数据处理、日志分析等实际应用打下基础。教程内容由浅入深,适合零基础学习者快速上手文件操作。

分享知识,拥抱变化 1285

python中shutil模块的用法-高级文件操作模块

python中shutil模块的用法-高级文件操作模块复制、移动、删除、打包操作

caribbean666的博客 7996

Python 文件操作与输入输出:从基础到高级应用

此外,某些模式可能与操作系统的文件系统特性相关,例如在 Windows 上,文本模式会自动转换换行符,而在 Unix 系统上则不会,这种差异将在后续章节中详细讨论。在 Python 中,输出重定向不仅限于将标准输出或错误流写入文件,还可以通过高级技巧实现更复杂的输出控制,例如在交互式环境中捕获输出或自定义输出目标。参数指定文件的操作方式,常见的模式包括读取(‘r’)、写入(‘w’)和追加(‘a’),此外还可以结合二进制模式(‘b’)或更新模式(‘+’)使用。因此,建议尽量使用局部化的重定向方式,如。

静水深流 1169

Python文件及目录操作(高级文件操作篇)

Python文件及目录操作(高级文件操作篇)

醉蕤的博客 1697
上一篇: python高级 之(四) --- 模块方法
下一篇: 爬虫解析Selenium 之(九) --- Selenium模块
baoding4359
博客等级 码龄11年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值