文件处理
文件:数据的抽象和集合,都由0,1存储
二进制文件:由0,1组成
text = '中国是一个伟大的国家!'
tf = open("f.txt",'rt',encoding='utf-8')#"rt"文本形式打开文件
print(tf.readlines())
tf.close()
['中国是一个伟大的国家!']
tf = open("f.txt",'rb')#'rb'以二进制打开文件
print(tf.readline())
tf.close()
b'\xe4\xb8\xad\xe5\x9b\xbd\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe4\xbc\x9f\xe5\xa4\xa7\xe7\x9a\x84\xe5\x9b\xbd\xe5\xae\xb6!'
文件内容的读取
函数 .read()读出全文件
函数 .read(size)读出前size长度
tf = open("f.txt",'rt',encoding='utf-8')#"rt"文本形式打开文件
tf.read(2)
'中国'
函数 .readline(size)读出第一行前size长度
tf = open("f.txt",'rt',encoding='utf-8')#"rt"文本形式打开文件
tf.readline()
'中国是一个伟大的国家!'
函数 .readlines()读出所有行
.readlines(hint)读出前hint行
tf = open("f.txt",'rt',encoding='utf-8')#"rt"文本形式打开文件
tf.readlines()
['中国是一个伟大的国家!']
一般采用.read()统一处理
但是处理信息量很大时占用内存很大,一般不用第二种方法,遍历文本
fo = open("f.txt","r")
while txt != "":
#对txt进行处理
fo.read(2)
fo.close()
#知道读完
tf = open("f.txt",'rt',encoding='utf-8')
for line in tf.readlines():
print(line)
#逐行运行
中国是一个伟大的国家!
文件的写入
writelines(list)将各个元素拼接,写道一行
fo = open("output.txt",'w+')
ls = ['z','h','m']
fo.writelines(ls)
for line in fo:
print(line)
fo.close()
没有任何输出,因为文件处理的指针在末尾
使用seek(0)回到开头
fo = open("output.txt",'w+')
ls = ['z','h','m']
fo.writelines(ls)
fo.seek(0)
for line in fo:
print(line)
fo.close()
zhm