文件File的读写
使用文件:
1 十年生死两茫茫,不思量,自难忘。 2 千里孤坟,无处话凄凉。 3 纵使相逢应不识,尘满面,鬓如霜。 4 夜来幽梦忽还乡,小轩窗,正梳妆。 5 相顾无言,惟有泪千行。 6 料得年年肠断处:”明月夜,短松冈。
文件常用函数:
一、指针pointer
1、通俗讲即光标,程序根据指针位置进行后续操作
2、指针相关函数:
1、tell()
file.tell()
查看当前指针的位置,返回整数
1 file_obj = open('test.txt', 'r') 2 x = file_obj.tell() 3 print(x) 4 file_obj.close() 5 --->0
2、seek() 调整指针位置,无返回值
file.seek(num)
调整至真到num的位置,从开头计算第num个
file.seek(offset, whence)
offset:开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
一、打开Open
1、基本用法:open()
file = open(file_path, '模式')
file_path:文件的路径
模式:基本模式:
1、w:wirte写入:文件不存在时新建文件,存在时打开文件并清空文件内容
只能执行写入操作
2、r :read读取 :文件不存在时报错,存在时打开文件并将指针指向文件开头位置
只能执行读取操作
3、a:append追加:文件不存在时新建文件,存在时打开文件并将指针指向文件末尾位置
只能执行写入操作
4、x:xor异或:文件不存在时新建文件,存在时保存
只能执行写入操作
扩展模式:(不能单独使用,只能和基本模式一起用)
1、+:plus增强:使任何基本模式变为读写模式,如 'w+', 'a+'等
2、b:bytes位模式:获取数据或写入数据的类型变更为bytes类型
1 file_obj = open('test.txt', 'w') 2 file_obj = open('test.txt', 'r') 3 file_obj = open('test.txt', 'a') 4 file_obj = open('test.txt', 'x')
5 file_obj.close()
二、读取read
1、基本用法:read()
file.read() 读取所有内容
file.read(num) 读取指定个数的字符
1 file_obj = open('test.txt', 'r') 2 x2 = file_obj.read(10) 3 print(x2)
4 file_obj.close()
5 --->十年生死两茫茫,不思
file.readline() 一次读取一行数据
file.readline(num) 读取一行数据的前num个字符
file.readlines() 一次性将文件内容按行读取到list中,返回list
1 file_obj = open('test.txt', 'r') 2 x5 = file_obj.readlines() 3 print(x5)
4 file_obj.close()
5 --->['十年生死两茫茫,不思量,自难忘。 \n', '千里孤坟,无处话凄凉。 \n', '纵使相逢应不识,尘满面,鬓如霜。 \n', '夜来幽梦忽还乡,小轩窗,正梳妆。 \n', '相顾无言,惟有泪千行。 \n', '料得年年肠断处:”明月夜,短松冈。']
file.readlines(num) 若num不足一行数据的长度,则输出一行数据;
若num超过一行数据的长度,则输出该行数据以及下一行数据
1 1 file_obj = open('test.txt', 'r') 2 2 x6 = file_obj.readlines(10) 3 3 print(x6) 4 4 file_obj.close() 5 5--->['十年生死两茫茫,不思量,自难忘。 \n'] 6 6 7 7 file_obj = open('test.txt', 'r') 8 8 x7 = file_obj.readlines(20) 9 9 print(x7) 10 10 file_obj.close() 11 11 --->['十年生死两茫茫,不思量,自难忘。 \n', '千里孤坟,无处话凄凉。 \n']
三、写入write
1、基本用法:write()
file.write(str) 将内容写入文件
file.writelines(seq) 将容器中的数据写入文件
如果容器为字典,则写入的是key
1 file_obj = open('test.txt', 'w+') 2 file_obj.writelines(['asd', 'dwwa'])
3 file_obj.close()
四、with用法
以上方法在异常处理文件的时候,会无法正常关闭文件,python提供了另外一种方法进行文件的读取写入操作
语法:with open(file_path, '模式') as fp:
x = fp.read()
with操作会自动关闭文件,推荐对文件操作时,使用with语法
五、截取truncate
用于从文件的首行首字符开始截断,截断文件为 size 个字节,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除
1、基本用法:truncate()
file.truncate(size) num参数代表的是字节单位,而不是字符单位
字符,字节,字符集三者概念
1、字符:一个独立存在的文字就是一个字符,无论什么语言什么符号
2、字节:用于存储数据的基本单位
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B (B就是字节)
1B = 8bytes
3、字符集:
基本的英文编码(1个字节)
ascii码 --->记录英文和数字及部分符号的编码(128个)
扩展ascii码 --->增加了ascii码的数量(256个)
制作特定语言的编码(每个汉字占用2个字节)
gb2312
gb18030
gbk编码 包含了所有汉字
big5编码 繁体中文编码
制作世界统一编码(每个汉字占用3个字节)
utf-8
utf-16