zoukankan      html  css  js  c++  java
  • python之文件读写(1)

    1. 从文件读取数据

    关于对文件的操作,使用open(filename, mode),打开文件。与之对应的,close()用来关闭文件。对文件操作完毕切记要关闭。

    open函数参数:

    mode 参数有:

    模式描述
    t 文本模式 (默认)。
    x 写模式,新建一个文件,如果该文件已存在则会报错。
    b 二进制模式。
    + 打开一个文件进行更新(可读可写)。
    U 通用换行模式(不推荐)。
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

     

     

     

     

     

     

     

     

     

    其中重点要理解r,r+,w,w+,a,a+.

    博主理解是:

    r(read):可读

    w(write): 可写

    a(append):追加

    +:权限升级

    1.1 读取整个文件

     读取文件我们使用的函数是read()。read函数可以传递参数,下一小节会用到。

    1 file = open("test_data.txt", "r", encoding="UTF-8") # open的参数有兴趣的小伙伴可以自己查一下
    2 res = file.read()  
    3 print(res)
    4 file.close()

    1.2 读取指定字节的内容

     读取指定字节,首先我们要知道什么是字节:字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也表示一些计算机编程语言中的数据类型和语言字符。

    Ascll码:一个汉字=2个英文字母=2字节。

    如果我们要读出文件中前13个字节,只需要在read中传入参数read(13)。试一下

    1 file = open("test_data.txt", "r",)
    2 res = file.read(13)
    3 print(res)
    4 file.close()

    当在read中输入负数时,是读取全部内容。

    1 file = open("test_data.txt", "r",)
    2 res = file.read(-1)
    3 print(res)
    4 file.close()

    1.3 读取包含中文内容的文本

     utf-8下回车也占1字节,其他也是一字节。

    file = open("test_data.txt", "r",encoding="UTF-8")
    res = file.read(6)
    print(res)
    file.close()

    结果:

    1.4 按行读取内容

     1.4.1 读一行

    按行读取文件内容使用的是readline方法。实际操作一下哎。

    readline方法也可以传入参数。我们分别看一下不传参与传参的区别:

    不传参:

    传参:

    传入的参数其实是限制作用,可以限制读取该行的前几个字节。

    总结:这是按行读取的,读完第一行,会根据光标所在的位置,如果该行未读取完,再执行则继续读取该行。如果完整读取完一行,再执行则读取下一行。建议读者配合记事本模拟方便理解。

     1 #!/usr/bin/python3
     2 # -*- coding: utf-8 -*-
     3 # @Time     :2018/11/28 16:11
     4 # @Author   :Yosef
     5 # @Email    :wurz529@foxmail.com
     6 # @File:    :class26.py
     7 # @Software :PyCharm Community Edition
     8 file = open("test_data.txt", "r",encoding="UTF-8")
     9 res_1 = file.readline(3)
    10 res_2 = file.readline()
    11 res_3 = file.readline()
    12 res_4 = file.readline()
    13 print(res_1)
    14 print(res_2)
    15 print(res_3)
    16 print(res_4)
    17 file.close()

    结果:

    有一点需要提醒,这种读行也读取了换行,不想换行的话,可以使用strip(“ ”)来去掉。应该还记得这个函数吧,忘记的话自行百度或者看我字符串那边的博客。

     1 #!/usr/bin/python3
     2 # -*- coding: utf-8 -*-
     3 # @Time     :2018/11/28 16:11
     4 # @Author   :Yosef
     5 # @Email    :wurz529@foxmail.com
     6 # @File:    :class26.py
     7 # @Software :PyCharm Community Edition
     8 file = open("test_data.txt", "r",encoding="UTF-8")
     9 res_1 = file.readline(3)
    10 res_2 = file.readline().strip("
    ")
    11 res_3 = file.readline().strip("
    ")
    12 res_4 = file.readline().strip("
    ")
    13 print(res_1)
    14 print(res_2)
    15 print(res_3)
    16 print(res_4)
    17 file.close()

     1.4.2 读多行

    读多行用的是readlines方法。看一下下图:

    参数可以传入动态参数以及关键字动态参数。

    先不考虑传参的问题,直接运行结果如下:

    我们发现结果是一个列表,而且换行都用“ ”来表示了。

  • 相关阅读:
    简单明了的带你理解springboot原理和三大核心注解
    Spring Boot(一):入门篇
    【Mysql优化】聚簇索引与非聚簇索引概念
    Mysql索引原理与优化
    Mysql全文索引的使用
    索引的优缺点,如何创建索引
    184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
    183 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 03 String常用方法(下)
    182 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 02 String常用方法(上)
    181 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 01 String常用方法简介
  • 原文地址:https://www.cnblogs.com/wlyhy/p/10030845.html
Copyright © 2011-2022 走看看