@myles
        
        2018-03-31T06:10:18.000000Z
        字数 1391
        阅读 790
    未分类
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-8import 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.jpgtry: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/问题就解决了。