Monkey 发表于 2025-6-6 20:01

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]
查看完整版本: file文件处理