一、什么是读写文件:
读写文件就是请求操作系统打开一个文件对象,然后,通过操作系统提供的接口从这个文件对象中读取数据,或者把这个数据写入文件对象。
二、读文件
以读文件的模式打开一个文件对象使用open()函数,传入文件名和提示符.
f = open('/Users/michael/test.txt', 'r') //r表示只读
若文件不存在,open()
会抛出一个IOError
的错误
f.read()
就可以一次读取文件的全部内容,用str
对象显示文件使用完必须关闭:f.close()
,read()
方法会一次性读取所有的文件,如果文件太大,内存就爆了,所以可以反复调用read(size)
方法,分次读取,或者使用readlines()
只读一行
防止读完文件没有close掉,有以下两种方法去关闭文件:
1.使用try...finally
try:
f = open('/path/to/file', 'r')
print f.read()
finally:
if f:
f.close()
2.一种更简便的写法,python自动使用with来调用close()方法:
with open('/path/to/file', 'r') as f:
print f.read()
——————————————————————
读取二进制文件,用rb
模式打开
>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节
读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码
>>> f = open('/Users/michael/gbk.txt', 'rb')
>>> u = f.read().decode('gbk')
>>> u
u'\u6d4b\u8bd5'
三、写文件
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符’w’或者’wb’表示写文本文件或写二进制文件:
1.
>>> f = open('/Users/michael/test.txt', 'w')
>>> f.write('Hello, world!')
>>> f.close()
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')
——————————————————————————————————————
由以上可以想到,当前端想后台发起读写请求时,后台管理的代码先确定这个请求格式正确,然后再从服务器里通过open()
方法读写文件,前端下载就是向服务器读文件,前端上传其实就是向服务器写文件,调用open方法就可以了
内容参考自此处