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


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

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

                 (1)路径 例如:‘C:\Data\temp.txt’  斜杠需要转义,所以要写2个斜杠。 加 r 忽略转义  r'C:Data emp.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 文本文件的内容读取出来 (但是但是我们文本的换行却使用转义字符 显示了出来)

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

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

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

    解决方法:

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

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

                   

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

               

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

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

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

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

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

     (8) 关于编码的问题

               先将我们的  D:data emp.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 后面就是上下文的语法

  • 相关阅读:
    如何去除行内元素之间的间隙
    js判断字符串是否为空,多个空格也算为空
    android4.4的Webview的getCookie有兼容性有问题
    配置xampp搭建简单的web服务器环境
    Okhttp传递cookie给Webview的解决方法
    linux下使用nodejs和lessc编译器
    某盘下载链接提取脚本
    Android项目开发过程常用的工作流工具以及平台
    Android开发检测App从后台进入前台的解决方法
    NetworkImageView
  • 原文地址:https://www.cnblogs.com/Hong-Bin/p/8531397.html
Copyright © 2020-2023  润新知