时间:2021-07-01 10:21:17 帮助过:86人阅读
推荐(免费):python视频教程
我是一个学习Python初学者,近期刚学完文件操作。特地分享
文章分为两部分,第一部分为文件读取类型以及读取的方式,第二部分为练习题
文件读取类型
文件读取的操作方式有以下几种:只读,只写,追加,读写,写读
只读 r
f = open('test',mode='r',encoding='utf-8') # 打开文件,读取方式为`r`,编码为UTF-8 f1 = f.read() # 读取文件 print(f1) #打印文件 f.close() # 关闭文件
只读类型下,文件不能被修改
读写 r+
f = open('test',mode='rb',encoding='utf-8') # 读取方式变为`r+` file = f.read() f1 = f.read() f.close()
当读取方式为r+
时,文件可以被写入,但是打印出来的是写入前所读取的
二进制读 rb
代码略去,文件以二进制的模式读取。
剩下的我将以表格形式统一展现,可以参照对比以上代码
读取方式 | 补充 |
---|---|
r | 只读,不可被修改 |
r+ | 读写,光标在前,从第一个位置开始修改,打印出修改的字符数 |
rb | 以byte 方式读取 |
w | 只写,若写入的目标文件没有,则创建,有则清空再写入 |
wb | 转换为byte 类型写入 |
a | 打开文件,把光标移动到有文字的后面,再进行追加 |
ab | 以byet 类型加入 |
注
:r+
有两个表现,一个是读写
,还有一个是写读
。需要注意。另,w+
和a+
我没有写,是因为学习阶段用的相对来说较少
读取功能
我先以表格形式展示,再进行详解
读取方式 | 用于场合 |
---|---|
read() | 以字符读,可添加参数(I ),读前i 个字符 |
seek() | 调整光标位置 |
tell() | 调整光标位置,需放置于seek() 前 |
readline() | 一行一行的读 |
readlines() | 将每一行当成列表中元素读取,换行自带 \n |
truncate() | 截取一段读出来,从后往前读 |
例如有一个名为test
的文件,文件内容如下:
456926667
这是一个长为10个字符的字符串
f = open('test',mode='r',encoding='utf-8') # 打开文件,读取方式为`r`,编码为UTF-8 f1 = f.read(5) # 读取文件中前5个字符 print(f1) #打印文件 f.close() # 关闭文件
打印结果为
45692
f = open('test',mode='w',encoding='utf-8') # 打开文件,读取方式为`w`,编码为UTF-8 f1 = f.seek() print(f1) #打印第五个字符 f.close() # 关闭文件
打印结果为
2
剩下的我就不一一做演示,有需要可以自己试一试
文件读取方式
f = open('test',mode='w',encoding='utf-8')
此文件读取方式,仅能读取一个文件,另外代码多
with open('test',mode='w',encoding='utf-8') as f: pass
此文件读取方式,能同时读取多个文件,且代码量相对来说少
当需要同时操作两个或两个文件以上时,with open
方法会相对来说简易许多
以上就是Python自学文件操作的详细内容,更多请关注gxlcms其它相关文章!