zoukankan      html  css  js  c++  java
  • Python学习笔记之文件和流

    打开文件:open(name[,mode[,buffering]]),返回一个文件对象,模式(mode)和缓冲(buffering)是两个可选参数。

    假设有一个名为somefile.txt的文件,存储路径为c: ext,打开方式如下:f = open(r'C: extsomefile.txt')

    mode参数:如果open函数只带一个文件名参数,可以获得能读取文件内容的文件对象,如果要进行写操作,则必须要提供一个模式操作显式声明。

    描述
    'r' 读模式
    'w' 写模式
    'a' 追加模式
    'b' 二进制模式(可添加到其他模式中使用)
    '+' 读/写模式(可添加到其他模式中使用)

    'r+'参数可以在一个文件读写时使用

    'rb'参数可以读取一个二进制文件

    buffering函数:控制文件的缓冲,如果是0或者False,则I/O操作是无缓冲的(直接对硬盘进行操作),是1或者True则I/O操作针对内存,在进行flush或者close时才更新硬盘上的数据,大于1的数字代表缓冲区大小(字节),为负数表示使用默认缓冲区大小。

    基本文件方法:文件或流最重要的能力是提供或接收数据。

    >>> f2 = open('F:Python.txt')
    >>> f2.read()
    'hello worldhi'
    >>> f3 = open('F:Python.txt','a')
    >>> f3.write('
    Python')
    7
    >>> f3.close()
    >>> f2.read()
    '
    Python'
    >>> f2.close()

    read方法可以指定读取个数。

    使用writelines(list)对文件进行修改:

    f = open('F:Python.txt')
    lines = f.readlines()
    f.close()
    lines[1] = 'bye bye'
    f2 = open('F:Python.txt','w')
    f2.writelines(lines)

     关闭文件:

    • 使用try/finally语句,在finally语句中调用close方法;
    • with语句,打开文件并将其赋值到变量上,文件在语句结束时自动关闭,即使是由于异常引起的结束也是如此。

      with open('file.txt') as file1:

        do_something(somefile)

    上下文管理器:是一种支持__exit__和__enter__两个方法的对象,__enter__方法不带参数,在进入with语句块的时候被调用;__exit__方法有三个参数:异常类型、异常对象和异常回溯,在离开方法(带有通过参数处理的、可引发的异常)时这个函数被调用,如果__exit__返回false,那么所有异常都不会被处理。

    文件可以用作上下文处理器,__exit__关闭文件,__enter__返回文件对象本身。

    文件对象是一个可迭代对象,对于大文件的读取,可以使用如下方法:

    f = open('F:Python.txt')
    for x in f:
        print(x)
    f.close()

    或者直接对文件进行迭代,不使用变量存储文件对象:

    for line in open('F:Python.txt'):
        print(line)
    
    line1,line2 = open('F:Python.txt')
    print(line1)
    print(line2)
    
    lines = list(open('F:Python.txt'))
    print(lines)
  • 相关阅读:
    BizTalk 2010 Adapter for mySAP Business Suite 所支持版本
    BizTalk Adapter Pack for Oracle 实现Oracle 11g的CRUD
    BizTalk 360 功能介绍 CTP版
    以小见大——那些基于 protobuf 的五花八门的 RPC(5 完)
    BizTalk Server 2010 + SQL Server 2008 R2 通过集成创造更大价值 [ 上篇 ]
    double to float
    Office 2003 PIA
    matlab传参数
    Convert.ToInt16
    矩阵转换
  • 原文地址:https://www.cnblogs.com/HJhj/p/7445254.html
Copyright © 2011-2022 走看看