Python22 文件读写、StringIO、BytesIO

文件读写、StringIO、BytesIO

  • IO编程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776
    - - -
  • 文件读写:,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
    • 读文件:使用python内置的函数open() ,传入文件名,和标识符

      • 代码:
        ```
        # 读文件,read.txt 是文件对象,‘r‘ 表示 只读 , 如果文件不存在 就会抛出 IOError
        f = open(‘read.txt‘,‘r‘)
        content = f.read()# 一次性读取文件的全部内容,python把内容读到内存,用一个str对象表示
        print(content)
        f.close() # 最后关闭文件,文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源
        # 读文件三部曲,1.打开文件 2. 读取文件 3. 关闭文件

        IOError:由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用

        try:
        f1 = open(‘read.txt‘,‘r‘)
        print(f1.read())
        finally:
        if f1:
        f1.close()

        # with:每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法
        with open(‘read.txt‘,‘r‘) as f: # 这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。
        print(f.read())

        # read(size) - 按字节读取内容
        with open(‘read.txt‘,‘r‘) as f:
        # 读取4个字节
        print(f.read(4))

        #readline() - 按行读取内容
        with open(‘read.txt‘,‘r‘) as f:
        print(f.readline())

        # readlines() - 一次读取所有内容并按行返回list
        with open(‘read.txt‘,‘r‘) as f:
        linelst = f.readlines()
        for line in linelst:
        print(line.strip())

        # 二进制文件:读取二进制文件,比如图片、视频等等,用‘rb‘模式打开文件
        with open(‘image.png‘,‘rb‘) as f:
        print(f.read())
        # 字符编码:读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
        with open(‘gbk.txt‘,‘r‘,encoding=‘gbk‘) as f:
        print(f.read())

        # 处理编码错误 传入 errors
        f = open(‘/Users/michael/gbk.txt‘, ‘r‘, encoding=‘gbk‘, errors=‘ignore‘)
        ```

      • 运行结果:
    • 写文件:
      • 代码:
        ```
        # 写文件:写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符‘w‘或者‘wb‘表示写文本文件或写二进制文件
        w = open(‘write.txt‘,‘w‘) # ‘w‘ 没有文件时将创建文件,有文件将直接覆盖原文件
        w.write(‘hello‘)
        w.close()

        # ‘a‘ 文件末尾追加内容
        with open(‘write.txt‘,‘a‘) as w: # as w 即 w = with open(‘write.txt‘,‘a‘)
        w.write(‘python3‘)

        # 写特定编码的文件
        w = open(‘write.txt‘,‘w‘,encoding=‘gbk‘)
        w.write(‘gbk‘)
        w.close()
        ```

  • StringIO: 在内存中读写str
    • 代码:
      ```
      # String IO:在内存中读写str
      from io import StringIO
      f = StringIO()
      print(f.write(‘hello‘)) # 打印字节数
      print(f.getvalue()) # getvalue()获取内存中的str

      # 读
      r = StringIO(‘hello\nworld!‘)
      while True:
      s = r.readline()
      if s == ‘‘:
      break
      print(s.strip()) # 替换换行 \n
      ```

  • BytesIO:BytesIO实现了在内存中读写bytes
    • 代码:
      ```
      # BytesIO:操作二进制数据
      from io import BytesIO
      w = BytesIO()
      # 请注意,写入的不是str,而是经过UTF-8编码的bytes。
      print(w.write(‘好运来!‘.encode(‘utf-8‘))) # 打印字节数
      print(w.getvalue()) # 获取二进制值

      # 读
      r = BytesIO(b‘\xe5\xa5\xbd\xe8\xbf\x90\xe6\x9d\xa5\xef\xbc\x81‘)
      print(r.read())
      ```

原文地址:https://www.cnblogs.com/thloveyl/p/11470183.html

时间: 2024-10-18 07:49:09

Python22 文件读写、StringIO、BytesIO的相关文章

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10

Python IO编程——StringIO & BytesIO

1.1   StringIO & BytesIO 1.1.1   StringIO StringIO顾名思义就是在内存中读写str. 写StringIO >>> fromio import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write('world!') 6 >>> f.ge

三十二 文件读写

读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f =

Python学习笔记(二十三)文件读写

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431917715991ef1ebc19d15a4afdace1169a464eecc2000 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求

20 文件读写

文件读写 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>>

Node.JS 文件读写,把Sheet图集转换为龙骨动画图集

Node.JS 文件读写,把Sheet图集数据转换为龙骨动画图集数据 var fs = require("fs") var readline = require("readline"); var rl = readline.createInterface({ input:process.stdin, output:process.stdout }); var path = undefined; var dbName = undefined; rl.question(

Android中的文件读写全面总结

转载请注明出处:http://blog.csdn.net/bettarwang/article/details/41625187 在深入分析Java中的I/O类的特征及适用场合 一文中,我详细介绍了Java中的I/O,但是,如果以为Android中的I/O与Java中一样,那就大错特错了.实际上,它们有一定的相同之外,但更多的是区别,因为Android系统中的文件存放位置不同,读取方式也不一样.下面将详细介绍Android中的文件读写: 一.资源文件的读取,不需要在Manifest文件中添加权限

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

 1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; //通过ofstream的方式实现写入文件 open,close void main() { ofstream fout;  //ofstream输出文件 fout.open("E:\\1.txt");//打开文件 fout << "1234abcdef";

C语言文件读写操作总结

C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char