python IO操作

python io编程

  • 读写文件是常见的io操作,python内置了读写文件的函数,用法与C是兼容的。
  • 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘.

    读文件

  1. 要以读文件模式打开一个文件列表,使用open()函数,并传入文件名和标识符:

     f = open(r‘.1.txt‘,‘r‘)
    • 这是第一个r表示引号里面的东西不转义,第二个r 表示读。
  • 如果文件成功打开,我们调用read方法可以一次性读取全部内容:

      f = open(r‘.1.txt‘,‘r‘)
      f.read()
      ------------
      ‘hello,word!‘
  1. 最后一步调用close()方法关闭文件。

     f.close()

    由于读写文件时有可能发生错误,一旦出错,后面的f.close()就不会被调用。所有我们使用try.....finally来实现:

     try:
         f =open(r‘.1.txt‘,‘r‘)
         print(f.read())
     finally:
         if f:
             f.close()
  • 每次这么写就太繁琐了,所以,python引出了with语句来自动调用close()方法:

      with open(r‘.1.txt‘,‘r‘) as f:
           print(f.read())
  • 调用read会一次性读取文件的全部内容,如果文件有10G,内存就炸了。
    • read(size) 每次读取size个字节的内容
    • readline()每次读取一行内容
    • readlines()一次读取所有内容并返回list
  • 读取二进制文件
      >>> f = open(‘/Users/michael/test.jpg‘, ‘rb‘)
      >>> f.read()
      b‘\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...‘ # 十六进制表示的字节
  • 字符编码
      f =open(‘.1.txt‘,‘r‘,encoding = ‘gbk‘,errors=‘ignore‘)
    • errors 会忽略错误编码字符
  • 写文件
      f = open(‘.1.txt‘,‘w‘)
      f.write(‘hello,word‘)
      f.close()

python io操作标识符

  • ‘r‘ 开放阅读(默认)
  • ‘w‘打开写入,先截断文件
  • ‘x‘ 打开以进行独占创建,如果文件已存在则失败
  • ‘a‘ 打开以进行写入,如果存在则附加到文件的末尾
  • ‘b‘ 二进制模式
  • ‘t‘ 文字模式(默认)
  • ‘+‘ 打开磁盘文件进行更新(读写)

StringIO 和ByterIO

StringIO

  • 很多时候,数据读写不一定是文件,也可能在内存中读取
  • stringIO顾名思义就是在内存中读取str。
      from io import StringIO
      f = StringIO()
      f.write(‘hello‘)
      f.write( ‘ ‘)
      print(f.getvalue())
    • getvalue()方法用于获得写入后的str。
  • 要读取StringIO,可以初始化StringIO,然后,像读文件一样读取:
      from io import StringIO
      f = StringIO(‘Hello\nHi!\nGoodbye‘)
      while True:
          s = f.readline()
          if s == ‘‘:
              break
          print(s.strip())

    BytesIO

  • BytesIO实现了在内存中读取bytes,我们创建一个BytesIO,然后写入一些bytes
      from io import BytesIO
      f = BytesIO()
      f.write(‘中午‘.encode(‘utf-8‘))
      print(f.getvalue())

操作文件和目录

  • os的基本功能

      import os
      os.name
      ---------
      ‘nt‘    
  • 在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看:
      import os
      os.environ
      # get 获取单个环境的变量
      os.environ.get(‘PATH‘)

    操作文件和目录

  • 操作文件和目录的函数一部分放在os模块中,一部分放在了os。path
      # 查看当前目录的绝对路径
      os.path.abspath(‘.‘)
      # 在在某个目录下创建一个新目录,首先把新目录的完整路径表示出来
      a=os.path.join(‘/Users/michael‘,‘testdir‘)
      # 删除一个目录
      os.rmdir("a")
      # 创建一个目录
      os.mkdir("a")
  • 把两个路径合成一个时,不要直接拼接字符,而要通过os.path.join().这样可以正确处理两个操作系统路径分隔符不同的情况
  • 同样,才分路径的时候用os.path.split()函数
      os.path.split(‘/Users/michael\\testdir.txt‘)
      (‘/Users/michael‘, ‘testdir.txt‘)
  • os.path.splitext可以直接获得文件的扩展名
      os.path.splitext(‘/Users/michael\\testdir.txt‘)
      (‘/Users/michael\\testdir‘, ‘.txt‘)

原文地址:https://www.cnblogs.com/yangaoteng666/p/9274247.html

时间: 2024-08-08 18:57:43

python IO操作的相关文章

python之协程与IO操作

协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序. 子程序调用总是一个入口,一次返回,调用顺序是明确的.而协程的调用和子程序不同. 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,

[Python基础]006.IO操作

IO操作 输入输出 print raw_input input 文件 打开文件 关闭文件 读文件 写文件 文件指针 实例 输入输出 输入输出方法都是Python的内建函数,并且不需要导入任何的包就可以使用. print 简单控制台输出方法 print ... print 'content' raw_input 简单的控制台输入方法 raw_input(显示的内容....) num = raw_input('Please input a number:') // 输入一个数字 print num

Python进阶三部曲之IO操作

IO编程 文件读写 打开文件 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 具体需要查看API,这里只介绍几个常用的方法. open函数的文件名是必传参数,返回一个文件对象 #打开一个文件. f = open('read.txt', 'r') open函数的mode参数: 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '

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

python IO多路复用之select

说起IO操作我们最先想到的就是读写文件.其实python中对有三种IO操作,打开文件,使用socket进行网络连接和系统的标准输入输出sys.stdin和sys.stdout.我们先来看一段socket服务端的代码: import socket ip_port = ('127.0.0.1',9999) sk = socket.socket() sk.bind(ip_port) sk.listen(5) while True:     """     程序运行到accept()

Python IO编程

IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 只要进行数据交换,网络传输等行为都会产生io操作. 同步IO:CPU等着,也就是程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再接着往下执行. 异步IO:CPU不等待,只是告诉磁盘,"您老慢慢写,不着急,我接着干别的事去了",于是,后续代码可以立刻接着执行. 同步和异步的区别就在于是否等

Python pymysql——Mysql数据库Python化操作

前言 Mysql数据库是目前较为流行使用的数据库之一,众多编程语言都有对其的支持扩展包接口,当然于python而言亦有专门扩展库以便帮助开发者对Mysql数据库进行相应的操作.其中,由于python版本不同,对Mysql支持的库也有区别,目前使用较为普遍的有pymysql和MySQLdb,两者功能上无明显差异,只是前者支持python3.X版本,后者应用于python2.X版本. 在此以python3.X版本为平台基础,对pymysql的相关基础及使用方法作简单介绍. 安装 直接使用pip命令进

Lesson 024 —— python 文件操作

Lesson 024 -- python 文件操作 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法. open() 函数常用形式是接收两个参数:文件名(file)和模式(mode). open(file, mode='r') 完整的语法格式为: open(file, mode='r',

IO操作与IO模型

目录 一 .IO操作本质 二. IO模型 BIO – 阻塞模式I/O NIO – 非阻塞模式I/O IO Multiplexing - I/O多路复用模型 AIO – 异步I/O模型 三.同步I/O与异步I/O 四. IO设计模式 Reactor模式 Proactor模式 对比分析 一 .IO操作本质 数据复制的过程中不会消耗CPU # 1 内存分为内核缓冲区和用户缓冲区 # 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 # 3 而IO操作.网络请求加载到内存的数