zoukankan      html  css  js  c++  java
  • python——文件读写

    1. open()函数用法:

    file-object = openfile_name, access_mode = ' ', buffering = -1

    filename可以是相对路径或绝对路径,access_mode可以为r, w, a分别代表读,写,追加,U则表示通用换行符支持。rU模式下,打开的文件必须存在,w模式下打开的文件若存在则首先被清空,然后重新写入。a则是追加到文件尾部。如果文件不存在,则自动创建。

    buffering表示缓冲方法,0为不缓冲,1为缓冲一行,大于1则表示缓冲特定大小,不给定或-1时,则表示采用默认缓冲机制。

    1. 文件内建方法
      1. readN):直接读取N个字节到字符串中
      2. readline():读取文件的一行,包括行结束符然后作为字符串返回。
      3. readlines():读取所有(剩余的)行然后把它们作为一个字符串列表返回。
      4. xreadlines()不是一次性读取所有行,而是每次读取一块,用在for循环中可以减少对内存的占用。使用迭代器也一样可以实现。
      5. write():功能和read()相反。
      6. writelines():针对列表,他接受一个字符串列表作为参数,将他们写入文件。行结束符不会被自动写入。
    2. seek()和tell()

    seek(offset)方法可以在文件中移动文件指针到不同的位置,offset字节代表相对某个位置的偏移量,默认为01表示从当前位置算起,2表示从文件末尾算起。tell()则可以显示指针在文件中的位置。

    1. 标准文件

    sys模块通过sys.argv属性提供了对命令行参数的访问,sys.argv[0]永远是程序的名称,len(sys.argv)是命令行参数的个数。

    文件对象方法

    操作

    file.close( )

    关闭文件

    file.fileno( )

    返回文件操作符(FD整型)

    file.flush( )

    刷新文件内部缓冲区

    file.isatty( )

    判断file是否问一个类tty设备

    file.next( )

    返回文件下一行(类readline

    file.read(size = -1)

    从文件读取size个字节,当未给定size或为负时,读取剩余所有字节,然后作为字符串返回

     

    1. 从文件读取的数据回到脚本时是一个字符串,当把数据写入文件时,python不会自动将对象转换为字符串,你必须传递一个已经格式化的字符串。
    2. 正常python打开文件都是使用open函数,但是当中途出现异常时,文件时无法正常关闭的,可能引发不可知的错误,同时可避免忘记结尾close的情况。

    因此推荐使用with函数来打开文件

    >>> with open('workfile', 'r') as f:
    ...     read_data = f.read()
    >>> f.closed
    True

    使用迭代器打开文件,十分快速和节省内存。

     f = open(filename , 'r')

    for eachline in f:

    print eachline

    f.close()

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/hbgzy/p/5227955.html
Copyright © 2011-2022 走看看