python 文件输入和输出

参考:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820066616a77f826d876b46b9ac34cb5f34374f7a000

《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")



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值