当前位置: 首页 > news >正文

Python文件的操作处理详解

1.使用open()函数打开文件夹

在读取一个文件的内容之前,需要先打开这个文件。在Python程序中可以通过内置函数open()来打开一个文件程序中,,并用相关的方法读或写文件文件中的内容以供程序的处理和使用,同时可以将文件看作Python中的一种数据类型。是用函数open()的语法格式如下。

1

2

open(filename, mode='r', buffering=None, encoding=None, errors=None,

newline=None, closefd=True, opener=None)

open: 打开
以什么样的方式打开, 读或写 read, write
以读的方式:文本的方式, 二进制的方式
以写的方式:文本的方式,二进制的方式
写文件的时候:覆盖,追加(两种方式)

当使用上述函数open()打开一个文件后, 就会放回一个文件对象。上述格式中主要参数的具体说明如下所示:

  • filename:表示要打开的文件名。(路径+文件名)
  • mode:模式。
  • buffering:可选参数,缓冲区大小
  • encoding:文件编码类型。
  • 文本文件才有可能需要编码,二进制文件不需要指定编码 否则会报出异常
  • errors:编码错误处理方式。
  • newline:控制通用换行符模式的行为。
  • closefd:控制在关闭文件时是否彻底关闭文件。

上述格式中,参数“mode”表示文件打开模式。在Python程序中,常用的文件打开模式如下表所示。

文件打开模式
模式描述
r以读的方式打开文件(默认)
rb以二进制的格式打开一个文件只用于读。文件指针将会放在文件开头。
r+打开一个文件用于读写。文件指针将会放在文件开头。
rb+以二进制的格式打开一个文件用于读写。文件指针将会放在文件开头。
w以写的方式打开,先清空文件再写(覆盖),如果该文件不存在,创建新文件
wb以二进制的格式打开文件并写入,先清空文件再写(覆盖),如果该文件不存在,创建新文件。
w+以二进制的格式打开一个文件用于读写。先清空文件再写(覆盖),如果该文件不存在,创建新文件。
wb+以二进制的格式打开文件并读写,先清空文件再写(覆盖),如果该文件不存在,创建新文件。
a以追加的方式去写
ab以二进制的格式打开一个文件夹用于追加。如果该文件存在,文件指针将会放在文件的结尾。也就是说,新的内容将会写入到已有的内容之后。如果该文件不存在,创建新文件。
a+打开一个文件用于读写。如果该文件存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件。
ab+以二进制格式打开一个文件用于追加。如果该文件存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件。

下图很好的总结了这几种模式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

#默认以文本读的方式打开

file_obj=open("file.txt", encoding="utf-8")

data=file_obj.read()

print(data)

file_obj.close()

file_obj=open("file.txt","rt", encoding="utf-8")

data=file_obj.read()

print(data)

file_obj.close()

file_obj=open("file.txt","w", encoding="utf-8")

data=file_obj.write("11111111111111111")

print(data)

file_obj.close()

file_obj=open("file2.txt","w", encoding="utf-8")

data=file_obj.write("11111111111111111")

print(data)

file_obj.close()

file_obj=open("file2.txt","a", encoding="utf-8")

data=file_obj.write("2222222222222")

print(data)

file_obj.close()

file_obj=open("file3.txt","a+", encoding="utf-8")

file_obj.write("33333333333333333333333333")

file_obj.close()

file_obj=open("file.txt", encoding="utf-8")

data=file_obj.read()

file_obj.close()

1.1.2二进制的方式(打开):图片,音频,视频或者其他的非文本的文件。

1

2

3

4

5

6

7

8

9

10

11

#打开”IO.png“文件,并以二进制的方式读出, b不能单独使用(b前的r不能省略)

file_obj=open("IO.png","rb")

data=file_obj.read()

print(data)

#关闭文件

file_obj.close()

#以二进制的方式写入文件”psb_copy.jpg“

file_obj=open("psb_copy.jpg","wb")

file_obj.write(data)

#关闭文件

file_obj.close()

注意:“IO.png”文件中,以存入了一张照片。

2.文件的操作

以文本方式写入的文件, 无需指定编码 以二进制方式写入文件,写入的内容要 求为bytes,所以通过str.encode('utf-8')来返回 bytes

1.2.1 文件写操作:

write()方法 f.write("hello world") #向目标文本文 件写入一行字符串

f.write("hello world".encode("utf-8")) #向目标二进制文件写入一行字符串

1.2.2文件写操作:

writelines()方法写入 文件的字符串序列。

seq = ["hello world 1\n", "nihao wohao 2"] f.writelines( seq ) 7/15

1.2.3 文件读操作:

read()方法从文件读取指定的字节数,如果未给定或为负则读取所有。

ret = f.read() #默认全部读出 ret = f.read(5) #读出指定长度字符

1.2.4 文件读操作:

readline()方法可以读 出一行数据ret = f.readline() #读取一行

注意:有个很像的readlines()方法ret = f.readlines() #返回的是一个列 表,且返回的是你读取的字符所在行的整个内容,但是当数据较大时,这样的用法会很占 用内存。

3.使用File操作文件

3.1File对象的介绍

File对象中的属性信息如下表所示。

File对象中的属性信息

属性描述
file.closed如果文件已关闭返回True;否则返回False
file.mode返回打开文件的访问模式
file.name返回文件的名称

在Python程序中,对象File时通过内置函数实现对文件操作的,其中常用的内置函数如下。

File对象中的内置函数

函数功能
file.close()关闭文件,关闭文件后不能再进行读写操作
file.flush()刷新文件内部缓冲区,直接把内部缓冲区的数据写入文件,而不是被动的等待输出缓冲区写入。
file.fileno()返回一个整形的文件描述,可以用在如os模块的read方法等一些底层操作上
file.isatty()如果文件连接到一个终端设备返回True,否则返回False
file.next()返回文件下一行
file.read([size])从文件读取指定的字节数,如果为给定或者为负值,则读取所有字节
file.readline([size])读取整行,包括“\n”
file.readlines([hint])读取所有行并返回列表,如给定hint>,返回总合大于约为hint字节的行,实际读取值可能比hine大,因为需要填充缓冲区
file.seek(offsrt[, whence])设置文件当前位置
file.tell返回文件当前位置
file.truncate([size])截取文件,截取的字节通过size指定,默认为当前文件的位置
file.write(str)将字符串写入文件,没有返回值
file.writeline(lines)

向文件写入一个序列字符串列表,如果需要换行,则要自己加入换行符。


http://www.jsqmd.com/news/696374/

相关文章:

  • 智能导游中的路线规划与讲解服务
  • 个人第一篇博客
  • 2026年3月目前诚信的酒精厂商选哪家,回收废乙醇/酒精/回收异丙醇/回收废酒精/回收酒精/乙醇,酒精生产厂家找哪家 - 品牌推荐师
  • 从云端到 AIPC:深度拆解 4 类本地化 AI 模式,构建安全可控的私有知识库
  • 机器学习算法核心原理与应用实践
  • 【重磅喜报】社区项目硬件AI开发工具aily blockly获数百万种子投资
  • AI时代产品经理的工作流重构
  • 2026年植物精粹科技活酿人参酒深度解析及权威榜单发布
  • 小白也能轻松上手:DDColor黑白修复ComfyUI指南
  • 终极指南:如何使用League Akari免费提升英雄联盟游戏体验
  • 2026锦江区香奈儿奢品回收机构推荐榜:四川名表保养维修价格电话、四川名表保养维修服务电话、四川名表保养维修门店电话选择指南 - 优质品牌商家
  • 2026年知名的海水蝶阀/浙江超低温蝶阀/耐腐蚀蝶阀/船用蝶阀实力工厂推荐 - 行业平台推荐
  • 3dsconv终极教程:5步轻松实现3DS游戏格式转换的完整指南
  • MedGemma-X在教学查房中的应用:AI实时生成鉴别诊断思维导图
  • Phi-mini-MoE-instruct实战教程:API模式(POST /v1/chat/completions)调用示例
  • YOLOv11-seg改进系列 | 基于原创C3k2_CaFormerCGLU模块,自注意力Token Mixer叠加卷积门控FFN,复杂场景分割更稳
  • 2026年口碑好的宁波浸树脂石墨密封件/压缩机石墨密封件/高温高压耐磨石墨密封件主流厂家对比评测 - 品牌宣传支持者
  • XPack-MCP-Marketplace:AI时代的“应用商店”,一键部署与管理MCP服务
  • Flux2-Klein-9B-True-V2文生图教程:电影级打光提示词(伦勃朗/蝴蝶光)
  • 为什么孩子要先学盲打再提速?科学打字训练方法应该是怎样的?
  • 软件开发预算应该怎么定?避免一开始就踩坑
  • 2026年知名的浙江中线蝶阀/硬密封蝶阀/蝶阀推荐品牌厂家 - 行业平台推荐
  • 2026水利护坡钢模具优质厂家推荐适配基建场景:塑料模具/挡土墙模具/排水沟钢模具/框格护坡模具/检查井钢模具/选择指南 - 优质品牌商家
  • 【超详细】四阶龙格-库塔法(RK4)深度解析|一文吃透微分方程求解+MATLAB完整可视化代码
  • SQL中如何高效实现分组数据的批量更新_利用窗口函数与JOIN
  • 2026亚克力磁悬浮展示架厂家盘点,优质商用磁悬浮展示架厂家选购推荐 - 栗子测评
  • (GGGGS) n 连接子截短现象的发现与机制--文献精读223
  • C++ -- :stack,queue,priority_queue
  • 2026年热门的工业低压配电柜源头推荐:靠谱低压配电柜源头厂家、智能工业配电柜源头厂家 - 栗子测评
  • VSCode日志实时过滤与智能告警(Log Monitor Pro 2.4新特性首发):支持正则分组提取+阈值触发Shell脚本