文件读写
Posted xiaofei1106
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件读写相关的知识,希望对你有一定的参考价值。
1、文件的打开方式
1.1 基本描述
如果被打开的文档原来是utf-8编码,这时候只是改变编码为GB2312,那么用utf-8读是不会乱码的,而改为GB2312以后,重新输入字符,然后用utf-8打开则报错,说明文件只是编码改变,但没有在新编码下进行输入,则原来的字符按旧编码还是可以正确读出来的一个文件用什么编码方式保存,那么就要用什么编码形式打开只读、只写、追加、读写、如果电脑中“组织”中选择了“隐藏已知文件类型的扩展名”,再用带扩展名打开则会给文件再加一个扩展名,则不要选中这个选项。打开一个文件,操作完成以后,就要关闭这个文件。文件以什么编码存储,就要用什么编码打开
1.2 操作绝对路径
1 f = open(‘E:\Python Project\\05\Day8\模特主妇护士老师.txt‘,mode= ‘r‘,encoding=‘utf-8‘) 2 content = f.read() 3 print(content) 4 f.close()
结果:
1 中国广东广州
1.3 操作相对路径
1 f = open(‘模特主妇护士老师.txt‘,mode= ‘r‘,encoding=‘utf-8‘) 2 content = f.read() 3 print(content) 4 f.close()
结果:
1 中国广东广州
1.3 只读r:
1 f = open(‘模特主妇护士老师.txt‘,mode= ‘r‘,encoding=‘utf-8‘) 2 content = f.read() 3 print(content,type(content)) 4 f.close()
结果:
1 中国广东广州 <class ‘str‘>
1.4只写w:
1 f = open(‘模特主妇护士.txt‘,mode= ‘w‘,encoding=‘utf-8‘) 2 content = f.write(‘peng‘) 3 print(content,type(content)) 4 f.close()
结果:
1 4 <class ‘int‘>
1.5 wb:
1 f = open(‘模特主妇护士.txt‘,mode= ‘wb‘) 2 content = f.write(‘peng333‘.encode(‘utf-8‘)) #py默认就是以utf-8编码的,所以不会报错 3 print(content,type(content)) 4 f.close()
结果:
1 7 <class ‘int‘>
1.6追加a
1 f = open(‘log‘,mode= ‘a‘,encoding= ‘utf-8‘) 2 f.write("fei") 3 f.close()
结果:
文件中有添加
1.7 追加ab
1 f = open(‘log‘,mode= ‘ab‘) 2 f.write("fei".encode(‘utf-8‘)) 3 f.close()
结果:
为空
1.8 读写r+
读写r+:读写【可读,可写】,先读后写,如果先写那么光标定位在开始位置,会把已有的内容覆盖掉,然后读从写完那个位置开始读
这个最常用
1 f = open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) 2 print(f.read()) 3 f.write(‘AAA‘) 4 f.close()
结果:
1 AAAAAAAAAAAAAAAAAAfeifeifeifei
1 下面就是先写后读,那么光标位置就变化了 2 f = open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) 3 f.write(‘AAA‘) 4 print(f.read()) 5 f.close()
1.9 r+b:
1 f = open(‘log‘,mode=‘r+b‘) 2 print(f.read()) 3 f.write(‘AAA‘.encode(‘utf-8‘)) 4 f.close()
结果:
b‘AAAAAAAAAAAAAAAAAAfeifeifeifeiAAAAAA‘
1.10 w+:写读【可写,可读】
写读【可写,可读】,先清除在写,然后再读
1 f = open(‘log‘,mode=‘w+‘,encoding=‘utf-8‘) 2 f.write(‘AAA‘) 3 f.seek(0) 4 print(f.read()) 5 f.close()
结果:
AAA
1.11 a+:
1 f = open(‘log‘,mode=‘a+‘,encoding=‘utf-8‘) 2 f.write(‘AAA‘) 3 f.seek(0) 4 print(f.read()) 5 f.close()
结果:
1 AAAAAA
以上是关于文件读写的主要内容,如果未能解决你的问题,请参考以下文章
Java-jxl插件Excel文件读写报错jxl.read.biff.BiffException: Unable to recognize OLE stream
Java-jxl插件Excel文件读写报错jxl.read.biff.BiffException: Unable to recognize OLE stream