with open(output_filename, "wb") as f:

f.write(html_request.content)

我用这个方法读写文件时,却报错:IOError: [Errno 2] No such file or directory: './output/http%3A//cup.baidu.com/spider'

我一开始很懵逼,明明这个方法,如果文件不存在的话,会自动创建文件的呀。。。而且,我的一级目录是存在的啊!

后来报着试一试的心态,我把output_filename改成了『http%3Acup.comspide』试了试,然后运行就通过了!

所以,最后定位到,肯定是文件名里的 / 未编码造成的!python会把它当成目录去寻找,那output下一层的目录那必然是不存在了。

于是,我就去看了看 output_filename 的生成,如下

output_filename = os.path.join(output_directory, urllib.quote(html))

这一看,我又开始懵逼了,我明明做编码处理了啊?为啥/没处理的

于是又开始百度,结果发现:urllib.quote(string,safe)这个函数是接收两个字段的,一个是需要编码的url地址,另一个safe是指定某个字符不被编码!然后,重点来了,safe默认赋值是『/』

最后,水落石出,更改如下:

output_filename = os.path.join(output_directory, urllib.quote(html, safe='+/'))

就可以了!

输出就变成了:http%3A%2F%2Fcup.com%2Fspider

python open写入_【Python】使用with open读写文件时,文件不存在没有自动创建相关推荐

  1. 小甲鱼python猜题_[Python]小甲鱼Python视频第033课(except)课后题及参考解答

    # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. "&quo ...

  2. python 病毒 基因_#Python#提取基因对应的蛋白质名

    提取基因对应的蛋白质官方名 最开始,是需要将基因跟其编码的蛋白质对应起来,找遍了各种数据库都没发现有相关的注释文件,Uniprot作为处理蛋白质的大佬,结果里都有,肯定有办法能够满足需求. 搜索TP5 ...

  3. python keyboard模块_[python] PyMouse、PyKeyboard用python操作鼠标和键盘

    1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...

  4. python客户价值分析_[Python数据挖掘]第7章、航空公司客户价值分析

    一.背景和挖掘目标 二.分析方法与过程 客户价值识别最常用的是RFM模型(最近消费时间间隔Recency,消费频率Frequency,消费金额Monetary) 1.EDA(探索性数据分析) #对数据 ...

  5. python办公代码_[Python] 自动化办公 docx操作Word基础代码

    转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 文中的截图均为原创,转载请注明来源 安装 docx 是一个非标准库, ...

  6. 如何用python获取文献_[python]eutilities获取文献题录

    之前这篇文章(路人乙小明:用entrez eutilities来查pubmed文献)提过如何利用entrez eutilities查找文献.当时在最后面获取论文摘要和题录的部分直接用了text的模式. ...

  7. python就业视频_[Python] python就业班 900集 视频学习教

    01基础\* }+ F/ M- b6 v0 x) F( j% S 02Python核心编程\ 03数据结构与算法\5 C0 ~5 l2 x; S# k2 Z" a/ _" {) q ...

  8. python私有变量_[Python]Python中的私有变量

    什么是private StackOverflow上有一个备受关注的问题,想必也是很多刚从Java等支持面向对象范式的编程语言转来的同学想问的:Python的类是否可以定义私有变量(private va ...

  9. 查python的软件_[Python实战]Python制作天气查询软件

    以前,公众号分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气查询软件. 开发环境Python3 PyQt5 requests 准备工作 首先要获取 ...

最新文章

  1. org.json.JSONException: A JSONObject text must begin with #39;{#39; at character 1 of {解决方法...
  2. FORK()子进程对父进程打开的文件描述符的处理
  3. linux arp 防火墙关闭,如何关闭ARP防火墙
  4. qa/qc_专业QA如何实施可靠的CI / CD管道?
  5. PID控制器开发笔记之八:带死区的PID控制器的实现
  6. X86汇编语言从实模式到保护模式13:保护模式程序的动态加载和执行
  7. 设计模式第四篇-工厂模式
  8. PC电脑使用无线网卡连接上手机热点,为什么不能上网
  9. C语言数据结构队列的插入和删除
  10. 01-初识Node.js
  11. ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测?
  12. 【第11天】SQL进阶-索引的创建、删除(SQL 小虚竹)
  13. javascript里将函数名字符串转为函数并执行
  14. 玫瑰李文案:玫瑰李水果店的文案怎么写
  15. word文件上传(前后端分离)
  16. 让 dotnet 命令行输出作为英文的方法
  17. 【XSS漏洞06】神器beEF的安装与简介
  18. 名企实习一年我学会15件事(转)
  19. android与ios的适配,Android及ios适配原理总结
  20. 老男孩Openstack全新实战课程

热门文章

  1. 怎么用计算机算自己的月经周期,【月经周期怎么算】月经周期计算器_月经周期怎么算比较准确 - 妈妈网百科...
  2. 趣店,切莫做了“714高炮”的帮凶
  3. php分割中文字符串(1个字,多个字)
  4. 4. Java IO
  5. P2341 [HAOI2006]受欢迎的牛 (tarjan缩点+出度)
  6. 用JAVA语言实现一个日历项目
  7. 2022中国(济南)国际玉米深加工产业展3月启幕
  8. 利用GeoServer发布地理空间数据服务示例
  9. 单片机七阶音符_从零开始学单片机(八)蜂鸣器唱歌
  10. python画菱形的代码_题目:python 打印出如下图案(菱形):