file文件处理
file文件:是指文本文件(.txt)或日志文件(.log)---不包括mp3、html、excel、docx等。处理:读、写
新建file文件:
①使用PyCharm自带的创建file文件功能进行新建(⭐⭐⭐推荐⭐⭐⭐)
②使用普通的新建“文本文档”的方式进行新建
(1)将鼠标放在桌面/文件夹的空白位置
(2)单击鼠标右键,依次选择新建--->文本文档
读取file文件:
①使用open函数打开文件
文件打开的模式默认为“r”模式:
②使用“文件名.read()”读取所有文件内容
报编码问题的错~我们来看看原始文件内容
看到文件内容是中文的,有中文的时候需要加上utf-8编码,否则读取文件报错
③使用“文件名.read(X)”读取指定长度的内容
注意:若先读取所有文件内容后再读取指定长度的内容,是无法读取到的,因为读取全部文件内容后光标已经到了末尾,再读是无法读到内容的。
④使用“文件名.readline()”按行读取,每次只能读取一行的内容
⑤使用“文件名.readlines()”按行读取,读取所有行--->返回列表,每一行是列表的一个元素
写入file文件:
①同样使用open函数打开文件
②使用“文件名.write('要写入的内容')”给文件写入内容
哦豁,由于文件打开的模式默认为“r”模式,此时写入会报错(not writable)
此时可以修改打开文件时的模式为r+/w/w+等支持写入的模式
在r+模式下先写后读会从头开始逐字覆盖,那试试先读后写会咋样
发现在r+模式下先读后写会写在末尾
③使用“w”/“w+”模式打开文件,会自动清空原文件内容(以“w+”模式截图示例,“w”模式亦同)
文件也已自动清空
④w模式下使用“文件名.read()”读取文件内容
由于文件打开的模式为“w”模式,此时读取会报错(not readable)
⑤w/w+模式下使用“文件名.write('要写入的内容')”给文件写入内容(以“w”模式截图示例,“w+”模式亦同)
打开文件看看是否写入成功
⑥看到文件是写入成功的,此时我们将文件打开模式改为“w+”,然后使用文件名.read()读取所有文件内容
发现并没有读到内容(原因是:写入时光标已经到了末尾,此时读的话,光标从末尾开始,自然读不到内容)
解决方案:
(1)重新打开文件,然后读取(有点low)
(2)使用“文件名.seek(m,n)”来重新定位光标位置,然后读取
m:移动的量(UTF-8编码下,m的值必须是3的倍数)
n:相对位置(0:开头,1:当前位置,2:末尾)---此处仅支持0,不支持1和2,只有在二进制文件下才可能用到1和2
注意: “w”/“w+”模式下打开文件时,若打开的文件存在则会清空文件,若打开的文件不存在则会新建文件。
a模式(追加写)
①使用“a”模式打开文件,然后使用“文件名.write('要写入的内容')”给文件写入内容
②a模式下使用“文件名.read()”读取文件内容
由于文件打开的模式为“a”模式,此时读取会报错(not readable)
③a+模式下使用“文件名.read()”读取文件内容
发现并没有读到内容(原因与上面“w+”模式下读取文件内容时的一样:追加写时光标已经自动定位到了末尾,此时读的话,光标从末尾开始,自然读不到内容)
解决方案与上面“W+”模式下读取文件内容时的一样
(1)重新打开文件,然后读取(有点low)
(2)使用“文件名.seek(m,n)”来重新定位光标位置,然后读取
“a”/“a+”模式下打开文件时,若打开的文件存在则会在原文件的基础之上进行操作,若打开的文件不存在则会新建文件。
使用open函数打开文件,待文件使用完毕后需要使用“文件名.close”来关闭文件
推荐使用上下文管理器来自动关闭文件(详见:上下文管理器)
页:
[1]