@myles
2018-03-31T06:10:18.000000Z
字数 1391
阅读 712
未分类
open('路径','模式',encoding='utf8')
>>> f = open('c:/path/tmp.txt','r')
# 使用内建函数 open 以只读的方式打开文件'c:/path/tmp.txt',以此来创建一个文件对象,并赋值给变量f。
'c:\\path\\tmp.txt' # 添加一个转义'\'还原 '\';
r'c:\path\tmp.txt' # r 代表原生字符串
'c:/path/tmp.txt' # 直接将'\'改写为 '/'
文件对象的声明比较特殊的。
read() #读取全文
readline() #读取一行
readlines() #逐行读取,并返回一个以每行为一个数据的列表(list)
seek(0) #内部指针移动
close() #关闭文件对象
for line in f: #循环遍历,文件对象是一个可迭代的对象。
读取:
read(N)
readlines()
注:io.TextIOWrapper是可以迭代的。
for line in f: #遍历迭代
print(line,end = '')
with open() as f: 此种样式创建一个可操作的文件对象,为最常用方法需要牢记。最关键的是这个样式写完后,f文件对象会自动进行关闭保存。
with open('name','r',encoding = 'utf8') as f:
f.write('Hello,world !!!\n')
f.write('优品课堂\n')
自动进行f.close()操作。
现在使用requests模块进行图片下载,并将图片这个二进制文件直接存在到本地。我们来结合使用 ‘文件对象读写的方式来完成’。
# coding=utf-8
import requests
# (1) 第一步:下载图片
url = 'http://img0.dili360.com/rw8/ga/M02/48/ED/wKgBzFm_aNeAHDBhAAJdKZcnyvQ209.jpg'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
r = requests.get(url,headers=headers)
print("下载状态码 >>> {}".format(r.status_code))
# (2) 第二步:保存在下载对象r.content二进制内容到本地1.jpg
try:
with open('d:/tmp/1.jgp','wb') as f:
f.write(r.content)
print("保存图片成功...")
except:
print('保存图片出错了...')
C:\Python27\python.exe D:/Requests/file的读与写/下载图片并存储到本地.py
下载状态码 >>> 200
保存图片出错了...
Process finished with exit code 0
报错原因是因为:我将图片保存到D:/
根目录下,当前脚本没有权限。当我将图片保存路径改为d:/tmp/
问题就解决了。