Python零基础入门(12)-------文件读写

Posted hong-bin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python零基础入门(12)-------文件读写相关的知识,希望对你有一定的参考价值。

 

 数据类型:指向一个特定的文件 。不管是文本或者文档。或者其他媒体文件。

声明方式: open(‘路径‘ , ‘模式‘ , encoding = ‘编码‘);

             (1)路径 例如:‘C:\\\\Data\\\\temp.txt’  斜杠需要转义,所以要写2个斜杠。 加 r 忽略转义  r‘C:\\Data\\temp.txt‘

             (2)模式

                        区分下文件的形式有2种

                       【1】 文本    

                                 模式有    

                                            r  读  read      读取文本

                                           w 写   write      写入文本 ,写模式会将内容替换掉

                                          rw 读写

                                          a   追加  append   向文本中追加内容

                       【2】二进制(也称之为流) 

                                          b  

             (3)encoding 编码   编码有 ACSII  UTF8   GBK  GB2312  .......还有很多

                      

    

操作: 

(1)我们在D盘的data文件夹下建立一个 temp.txt  在里面写入 欢迎使用Python

技术分享图片

 

(2)接下来我们将文件读取输出到控制台上

我们通过 f.read() 方法将 temp.txt 文本文件的内容读取出来 (但是但是我们文本的换行却使用转义字符 \\n 显示了出来)

技术分享图片

 

(3)接下来使用 print() 方法将将 f.read() 的内容输出

技术分享图片

发现没有输出任何内容,这个是为什么呢?

原因是应为我们的  read() 函数的机制有一个指针,在读取的时候移动指针,当read结束的时候指针已经移动到了结尾。所以。当我们调用 read() 函数的时候,指针继续移动,却读不到任何内容,所以打印出空的

解决方法:

               【1】重新创建文件的实例   这种比较麻烦

               【2】 seek(0) 将指针重新移动到开头

                技术分享图片

 

(4) 读取完,我们不需要在继续操作了,可以调用 close() 方法关闭 

           技术分享图片

 

(5) read(num)  指定读取数量   【注:read() 不指定读取数量则一次性读取所有信息,假设文件很大,那么读取效率问题】

可以看到指定参数读取多少个字符

技术分享图片

 

 (6) readlines()  读取行,返回一个数组

技术分享图片

 

 (7) readline()   读取一行 ,调用一次,读取一行。

技术分享图片

循环输出 :为什么会看到隔一行呢? 因为print() 函数本身带一个 \\n 换行。 可以指定print() 函数的第二个参数 end,结束符号

技术分享图片

技术分享图片

 

 (8) 关于编码的问题

           先将我们的  D:\\data\\temp.txt 另存一下,编码选UTF-8 。然后我们接着读取

技术分享图片

 发现读取的时候抛出了一个异常。

 技术分享图片

这个时候就使用 encoding 参数,读取就正常了

 技术分享图片

 

我们新建一个 write.txt 文件进行写入操作 (不创建也可以,你open的时候也会帮你创建)

 技术分享图片

 (9) write(str)  写入,返回写入字符的长度 

 技术分享图片

打开文本却发现什么都没有。

技术分享图片

 

我们write(str) 只是将文本写入到内存中。但是还没有保存,如果想保存,我们可以调用 flush() 或者你已经操作完了可以调用close()

flush() 方法将内存的操作进行映射到文本文件上 (不关闭文件情况下,输出缓存到硬盘上)

技术分享图片

技术分享图片

 

(10) writelines(list) 写入多个

技术分享图片

产生文件并写入内容

技术分享图片

 

我们往 temp.txt 中追加内容

 技术分享图片

 

 

附录

关于路径:

当我们省略掉盘符的时候,他是从系统的环境变量中找到Python的安装目录找文件的

技术分享图片

引用 os 使用 os.getcwd() 方法可以获取我们Python的安装目录

 技术分享图片

os.chdir(path) 指定操作目录

技术分享图片

 

关于 f.close() 即使我们不手动close() 内存到一定程度也会自动回收。不close()是一个不好的编程习惯

当然 Python 提供了一种了一种上下文的语法  代码段执行完成之后会自动调用回收 (应用场景,文件读写,数据库读写)

with 后面就是上下文的语法

技术分享图片

 

以上是关于Python零基础入门(12)-------文件读写的主要内容,如果未能解决你的问题,请参考以下文章

零基础python入门书籍推荐读哪些书?

Python零基础入门(12)-------文件读写

零基础如何入门到精通人工智能Pytorch, 深度学习,如何跟进AI领域的最新算法,如何读论文找代码

零基础如何入门到精通人工智能Pytorch, 深度学习,如何跟进AI领域的最新算法,如何读论文找代码

零基础如何入门到精通人工智能Pytorch, 深度学习,如何跟进AI领域的最新算法,如何读论文找代码

一文读懂:Python爬虫超详细讲解带你实战爬知乎(零基础入门,男女老少都看的懂)