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()

原文地址:https://www.cnblogs.com/hbgzy/p/5227955.html