参考:
《Machine Learning In Action》第二章
#########################################################################3
python内置读写文件函数,用法和C兼容
过程描述:读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
相关函数:
open(内置函数)
help(open)
read([size]):
help(file.read)
从文件中读取size个大小字节,以字符串返回;如果参数为空或为负数,则读完整个文件后返回
readline():
help(file.readline)
读取一行
readlines():
help(file.readlines)
返回一个列表,该列表的每个数据是一个字符串,保存为文件的一行字节
write(str):
help(file.write)
写文件操作。将字符串写入文件中
在结束操作之前,最好使用函数flush()或close(),以免数据没有写入文件
#############################################################################
读文件:
要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标识符:
f=open("/Users/michael/test.txt", 'r')
标识符'r'表示读操作
当文件不存在,open()函数会抛出一个IOError错误,并且给出错误码和详细的信息:
如果文件打开成功,可以调用read()方法一次读取文件的全部内容,Python把内容读到内存;
也可调用readline()每次读取一行内容;
还可以调用readlines()一次读取所有内容病按行返回list
最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,否则会占用操作系统的资源。
f.close()
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,可以使用try...finally实现:
try:
f=open("path/to/file", 'r')
print f.read()
finally:
if f:
f.close()
更简单的写法,Python引入with语句来自动调用close()方法:
with open('path/to/file', 'r') as f:
print f.read()
note:使用'r'标识符默认读取文本文件,并且是ASCII编码的文本文件。要读取二进制文件,比如图片 / 视频等等,用'rb'模式打开文件即可
########################################################################33
写文件:
调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:
在使用write()方法写入文件后,务必调用f.close()方法来关闭文件。当写文件时,操作系统往往不会立即把数据写入磁盘,而是放到内存缓冲,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。故忘记调用close()的后果可能是数据只写入了一部分到磁盘,剩下的丢失了。
可以使用with语句:
with open('Users/michael/test.txt', 'w') as f:
f.write("Hello, World")