文件
(1)文件的类型
文本文件:由单一特定编码(如UTF8)组成的文件,如.txt/.py/.html等,默认的编码是gbk 这个是中文编码(二进制读写的时候要注意编码问题 ,默认情况下我们写入文件的编码是gbk)
二进制文件:没有统一字符编码,直接由比特0和1组成的文件,如.png/.exe/.avi等,用记事本打开形成乱码
(2)文件的打开宇关闭
打开:变量名=open(文件路径和文件名,rt/rb/x/w/a/+)
t:文本文件打开
b:二进制文件打开
x:创建文件不写内容
w:创建、覆盖文件包括内容
a:创建追加内容
+:与rwxa一同使用增加其他功能
关闭:变量名.close()
(3)文件内容的读取
变量名.read(size):读入文件整个内容,size为字符串长度
变量名.readline(size):读入一行内容,size为一行内字符串长度
变量名.readlines(hint):读入多行内容,hint为行数
(4)文件数据的写入
变量名.write(s):向文件写入一个字符串或字节流
变量名.writelines(lines):向文件写入一个字符串的列表
变量名.seek(offset,from):改变当前文件操作指针的位置,from:0-文件开头 ,1-当前位置 ,2-文件结尾
f.seek(-2,1) #在当前位置往回偏移2个字符
(5)CSV文件:Comma-Separated Values(逗号分隔值文件),其基本规则:
纯文本格式(txt)
特殊符号分隔(空格,逗号,分号等)
以行(line/row)为单位,中间没有空行
逗号一定是英文半角,分隔每列数据
文件的打开和关闭: (注意文件路径)
f=open('../Stu_pack/万疆.txt',encoding='utf_8') #打开文件
for line in f:
print(line)
print(f.readlines(4)) #处理文件
f.close() #关闭文件
文件的写入:
f=open('test.txt','w+')
f.write('文件的写入') #文件内容的写入
f.seek(0) #改变当前文件操作指针的位置到文件的开头
print(f.read())
f.close()
with上下文管理对象,自动释放打开关联的对象
with open('Test.txt','a') as f:
print(f.read())
f.write('python的\n') #写入文件
tell() 文件定位,指当前文件指针读取到的位置,光标位置。在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取
对于中文,每次读取一个汉字,则占用2个字符;英文,一个占一个
with open('Test.txt','r+') as f:
print(f.read(3))
print(f.tell())
print(f.read(2))
print(f.tell())
pass
truncate 可以对源文件进行截取操作
fobjA=open('Test.txt','r+')
fobjA.truncate(15) #保留前15个字符
print(fobjA.read())
fobjA.close()