zoukankan      html  css  js  c++  java
  • python-IO编程,文件读写

    一、文件读写

    1、打开文件

    函数:open(name[. mode[. buffering]])

    参数:

    • name:必须;文件的文件名(全路径或执行文件的相对路径。))
    • mode:可选;对文件的读写模式,默认是读模式。
    • buffering:可选;默认无缓冲区。

    返回:一个文件对象

    实例:

    • fileObject = open(r'c:123.txt'),注意小写的字母‘r’,表示字符串是字符本身,没有转义等特殊含义。
    • fileObject = open('c:\123.txt'),反斜杠两个表示一个‘’。

    2、文件模式

    mode参数:

    • ‘r’:读模式
    • ‘w’:写模式
    • ‘a’:追加模式
    • ‘b’:二进制模式(可添加到其他模式中使用)
    • ‘+’:读/写模式(可添加到其他模式中使用)

    ‘r’,只读。

    ‘w’,写,原内容被替换。

    ‘a’,在原内容后追加内容。

    ‘b’,对文本一般用不上,但处理其他类型的文件(二进制的),例如:MP3,图片;‘rb’:读取二进制。

    3、文件缓冲区

    buffering参数:

    • 0:无缓冲区
    • 1:有缓冲区,有换行符就把内存的中的数据写到文件
    • 大于1的数字:缓冲区的大小;超过缓冲区了就把内存数据写到文件
    • -1:默认缓冲区大小

    无缓冲,直接将数据写到硬盘上。

    有缓冲,数据先写到内存里,只有使用flush函数或者close函数才会将数据更新到硬盘。

    4、文件读取

    文件读取分为按字节读取和按行读取。

    常用函数:

    • read():
    • readline()
    • close()

    file = open('c:\123.txt')

    #读取文件全部内容到内存

    file.read() #返回str类型的对象,可以传参数,一个正整数,代表读取一次最多读取的字节数

    #读取文件的一行数据

    file.readline()

    for line in file.readline():

        print(line.strip())

    #关闭会文件的引用

    file.close()#文件对象会占用操作系统资源,影响系统的IO操作;文件使用完毕后必须关闭。

    保证程序的健壮性,使用try...finally实现文件读/写

    try:
        file = open('c:\123.txt')
        print(file.read())
    finally:
        if file:
            file.close()
    #第二种写法
    with open('c:\123.txt') as file:
        print(file.read())

    5、文件写入

    读取文件时需要对mode参数传参,‘w’或‘wb’

    使用‘wb’参数值,文本文件按二进制读写,如果有缓存,write函数写到内存,如果没有缓存,写到文件。

    flush函数把内存中的数据写到文件。close函数把内存中的所有数据写到文件。

    写文件也需要使用try...finally 或者with语句编写代码。

  • 相关阅读:
    IO流-----写到输出流
    MyBatis中collection (一对一,一对多)
    POI导出Excel并下载
    篇二:MySQL存储过程
    篇三:访问JSON静态文件
    ajax同步处理(使得JS按顺序执行)
    篇二:JSON解析
    篇一:MySQL中case when then
    乱码问题
    解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException
  • 原文地址:https://www.cnblogs.com/snake1118/p/10334005.html
Copyright © 2011-2022 走看看