读写文件
内置函数open(file,mode r ,buffering -1,encoding None,errors None,newline None, newline None,closefd True,opener None) file指定被打开的文件名称 mode参数指定了打开文件后的处理方式 buffering指定了读写文件的缓存方式 0表示不缓存 1表示缓存 大于1表示缓存区的大小 encoding是对文本指定编码格式 如GBK utf-8,CP936
读写语句
f1 open( file1.txt , r ) 以读模式打开文件 f2 open( file2.txt , w ) 以写的模式打开文件 f1.close() 一定要关闭文件
方法
readline() 读取一行返回 readlines() 把每行作为一个字符串存入列表然后返回该列表 write(s) 把s的内容写入文件 writelines(s) 把字符串写入文本文件 不添加换行符
with可以自动管理资源 保证文件被正常关闭
with open(filename,mode,encoding) as fp: 这里写通过文件对象fp读写文件内容的语句
举例
向文本文件中写入内容 再读出 s Hellow worldn文本读取方法n文本的写入方法n with open( sample.txt , w ) as fp: 默认使用cp936编码 fp.write(s) with open( sample.txt ) as fp: 默认使用cp936编码 print(fp.read())
举例
with open( sample.txt ) as fp: for line in fp: print(line)
json文件
import json 将对象s序列化为json格式写入fp json.dump(fp) #反序列化为python对象 返回字典对象 json.load(fp)
假设文件data.txt中有若干整数 每行一个整数 编写程序读取所有的整数
将其按照降序排序后再写入文本文件data_asc.txt中
with open( data.txt , r ) as fp: data fp.readlines() 读取所有行 存入列表 data [int(item) for item in data] 列表推导式 转化为数字 data.sort(reverse True) 降序排序 data [str(item) n for item in data] 将结果转换为字符串 # data.sort(key int,reverse True) 这样写更简洁 with open( data_desc.txt , w ) as fp:将结果写入文件 fp.writelines(data)
统计文本文件中最长行的长度和该行的内容
with open( sample.txt ) as fp: result [0, ] for line in fp: t len(line) if t result[0]: result [t,line] print(result)



