1 2 3 a = 2 b = 3 val = a if a < b else b
读文件 1 2 3 f = open(file='d:/hello.txt',mode='r,encoding='utf-8') data = f.read() f.close
智能检测编码 chardet 1 2 3 4 5 6 7 import chardet f = open('log',mode='rb') data = f.read() f.close() result = chardet.detect(data) print(result) data.decode("gb2312")
安装 pip3 install chardet大文件处理
1 2 3 4 f = open("log",'r',encoding="gbk") for line in f: print(line) f.close()
写文件(创建新文件,清空数据) 1 2 3 f = open('log','w',encoding='gbk') f.write("helow") f.close( 大专栏 python 文件处理 )
1 2 3 f = open('log','wb') f.write("helow",encoding='gbk') f.close()
追加文件 1 2 3 f = open('log','ab') f.write("hellow",encoding='gbk') f.close
混合读写
读写模式
1 2 3 f = open('log', 'r+') f.read() f.write("hello")
写读模式(清空原文件),几乎无用
1 2 3 f = open('log', 'w+') f.read() f.write("hello")
常用函数 flush #强制把内存刷新到硬盘 read #按字符读 tell #当前文件光标位置,按字节来度 seek #改变光标位置,按字节读 truncate #按当前位置截断文件(3,6) 6->从头开始截取6个
文件修改(占内存或占硬盘)
占硬盘 f1 = “log.txt” f_new = “log_new.txt” old_str = “alex” new_str = “david” f = open(f1,”r”,encoding=”utf-8”) f_new = open(f_new,”w”,encoding=”utf-8”) for line in f: if old_str in line:
line = line.replace(old_str,new_str)
f_new.write(line) f.close() f_new.close() os.rename(f_new,f1)
占内存