zoukankan      html  css  js  c++  java
  • Python I/O操作

    IO在计算机中指的是Input/Output也就是输入输出

    凡是用到数据交换的地方 都会涉及IO编程

    例如 磁盘  网络的数据传输  在IO编程中 Stream流是一种重要的概念

    分为 输入流 和输出流 ,可以把 流理解为一个水管

    数据相当于水管中的 水  但是只能单向流动  

    所以数据传输过程中 需要架设两个水管  一个负责输入 一个负责输出  这样读写就可以实现同步

    --------------------

    文件读写之前需要打开文件   确定文件的读写模式

    open函数用来打开文件  语法如下:

    open(name[.mode[.buffering]])

    name 为强制性参数

    mode 模式

    buffering 缓冲区 参数都是可选、、

    默认模式是读模式  默认缓冲区是无

    -------

    f=open(r'c: extqiye.text')

    如果文件不存在的话  

    可以看到 No such  file or directory

    -------

    2 文件模式

    -------

    r-----读模式

    w----写模式

    a-----追加模式

    b-----二进制模式 可以添加到其他模式中使用  一般处理文本文件时候 是用不到 b参数的   处理其他类型的文件   二进制文件  如

    mp3音乐或者图像   应该在模式参数中增加 b  这在爬虫处理媒体文件很常用  rb可以用来读取一个二进制文件

    +------读/写模式 可以添加到其他模式中使用

    --------

    如果buffering参数是0  I/O是无缓冲的  直接将数据写到磁盘

    如果是1  有缓冲  数据先写到内存    只有使用flush函数或者close函数 才会将数据更新到硬盘  

    参数大于1  的数字  代表缓冲区的大小   单位是节   

    -1 或者任何负数代表使用默认的缓冲区大小

    ---------

    文件读取主要 分为 按字节读取和按行读取   常用的方法 有read()   readlines()  close()

    f=open(r'c:a.text')

    f.read()

    f.close()

    一次读到内存中

    最后返回的是str类型的对象

    ------

    最后调用close() 关闭对文件的引用  文件使用完毕后必须关闭  因为文件对象会占用操作 系统资源 影响系统的 IO操作

    try:

      f.open(r'c: ext')

       print(f.read())

    finally:

      if  f:

        f.close()

    -------

    上面的代码过长  python提供了一种简单的写法

    使用with语句替代

    with  open(r'c:a.text','r')  as  fileReader:

      print ( fileReader.read())

    -------

    一次将文件读到内存  但是如果文件过大  将会出现内存不足的问题

    一般对于大文件 可反复调用 read(size)方法  一次最多读取size个字节

    如果是文本   调用readline()可以每次读取一行内容  

    调用readlines()  一次读取所有内容并按行返回列表

    -------

    with open(r'c:a.text','r') as fileReader:

      for line  in fileReader.readlines():

        print(line.strip())

    --------

    文件写入

    -------

    写文件和读文件是一样的  唯一的区别 在调用open方法时

    传入标识符w或者wb表示写入文本文件 或者写入 二进制 文件、====

    -----

    f=open(r'c: ext','w')

    f.write('qiye')

    f.close()

    我们可以反复调用write()方法写入文件最后用close关闭

    操作系统不是立即将数据写入文件中的 而是先写入内存中缓存起来

    等到有空闲的时候在写入文件中  最后使用close方法关闭文件

    当然也可以用f.flush()方法 不断将数据立即写入文件 中

    -------

    with  open(r'c:a.text','w')  as fileWriter:

      fileWriter.write('qiye')

    -------

    在Python中对文件和目录的 操作 经常用到

    os模块和shutil模块

    ---------

  • 相关阅读:
    linux 下的文件IO基础
    git命令-切换分支
    专利搜索引擎
    在此位置打开CMD
    2017 JAVA神器 Btrace详细介绍
    linux下的find文件查找命令与grep文件内容查找命令
    Linux如何查看JDK的安装路径
    JavaScript SetInterval与setTimeout使用方法详解
    ssh 登录出现Are you sure you want to continue connecting (yes/no)?解决方法
    ssh连接提示 "Connection closed by remote host"
  • 原文地址:https://www.cnblogs.com/yizhixuepython/p/9263697.html
Copyright © 2011-2022 走看看