文件读写

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()
View Code

结果:

技术图片
1 中国广东广州
View Code

1.3 操作相对路径

技术图片
1 f = open(模特主妇护士老师.txt,mode= r,encoding=utf-8)
2 content = f.read()
3 print(content)
4 f.close()
View Code

结果:

技术图片
1 中国广东广州
View Code

1.3 只读r:

技术图片
1 f = open(模特主妇护士老师.txt,mode= r,encoding=utf-8)
2 content = f.read()
3 print(content,type(content))
4 f.close()
View Code

结果:

技术图片
1 中国广东广州 <class str>
View Code

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()
View Code

结果:

技术图片
1 4 <class int>
View Code

 

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()
View Code

结果:

技术图片
1 7 <class int>
View Code

1.6追加a

技术图片
1 f = open(log,mode= a,encoding= utf-8)
2 f.write("fei")
3 f.close()
View Code

结果:

文件中有添加

1.7 追加ab

技术图片
1 f = open(log,mode= ab)
2 f.write("fei".encode(utf-8))
3 f.close()
View Code

结果:

为空

1.8 读写r+

读写r+:读写【可读,可写】,先读后写,如果先写那么光标定位在开始位置,会把已有的内容覆盖掉,然后读从写完那个位置开始读
这个最常用
技术图片
1 f = open(log,mode=r+,encoding=utf-8)
2 print(f.read())
3 f.write(AAA)
4 f.close()
View Code

结果:

技术图片
1 AAAAAAAAAAAAAAAAAAfeifeifeifei
View Code

 

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()
View Code

结果:

bAAAAAAAAAAAAAAAAAAfeifeifeifeiAAAAAA

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()
View Code

结果:

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()
View Code

结果:

技术图片
1 AAAAAA
View Code

 

 

 

 

 

 










 

以上是关于文件读写的主要内容,如果未能解决你的问题,请参考以下文章

Android tcp/ip 读写缓冲区脱离主代码

读写锁 与 互斥锁

Java-jxl插件Excel文件读写报错jxl.read.biff.BiffException: Unable to recognize OLE stream

Java-jxl插件Excel文件读写报错jxl.read.biff.BiffException: Unable to recognize OLE stream

VSCode自定义代码片段——.vue文件的模板

java中ReentrantReadWriteLock读写锁的使用