python2与python3的不兼容_urllib2

网页下载器:将URL对应的网页以HTML下载到本地,用于后续分析 常见网页下载器:Python官方基础模块:urllib2 第三方功能包:requests
python 3.x中urllib库和urilib2库合并成了urllib库。 其中urllib2.urlopen()变成了urllib.request.urlopen() urllib2.Request()变成了urllib.request.Request()
 
python2中的cookielib改为http.cookiejar.
import http.cookiejar
代替 import cookielib
再次强调:print “hello”;应写为print("hello");

 

python3对urllib和urllib2进行了重构,拆分成了urllib.request, urllib.response, urllib.parse, urllib.error等几个子模块,这样的架构从逻辑和结构上说更加合理。
urljoin现在对应的函数是urllib.parse.urljoin

 

转载于:https://www.cnblogs.com/myis55555/p/6680933.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 2.x和3.x在某些方面不兼容,其中一些主要差异包括但不限于以下几点: 1. 语法问题。 Python 3.x不允许使用print语句,使用print()函数代替。另外,Python 3.x使用unicode字符串作为默认字符串类型,而Python 2.x默认使用ASCII字符串。 2. 数据类型问题。 Python 3.x中有一些数据类型的命名有所改变,例如:long在Python 3.x中被替换为int。另外,Python 2.x中的整型是可以自动转换为浮点型的,但是Python 3.x进行了更严格的分离,并放弃了兼容性。 3. 标准库问题。 Python标准库也不同,某些在Python 2.x中存在的模块和函数在Python 3.x中被移除。例如,Python 3.x中的urllib库和Python 2.x中的urllib2和urllib库有所区别。 4. 其他问题。 Python 3.x有更好的Unicode支持,在处理国际化问题时更加方便。而Python 2.x还是使用基于ASCII的字节串,对Unicode字符的处理可能会产生编码错误。Python 3.x中的一些函数返回的对象类型也有所变化。例如filter、map、range、zip等函数,返回的对象都是生成器类型,而在Python 2.x中返回的是列表。 因此,如果你从Python 2.x迁移到Python 3.x,需要仔细阅读文档,认真处理代码兼容性和数据类型问题。 ### 回答2: Python 2.x和3.x是两个不兼容的版本,主要表现在以下方面: 1. 编码:在Python 2.x中,字符串默认使用ASCII编码,而在Python 3.x中,字符串默认使用Unicode编码。因此,当我们在Python 3.x中运行旧的Python 2.x代码时,需要修改代码以支持Unicode编码。 2. print函数:在Python 2.x中,print函数是一个语句,而在Python 3.x中,它是一个函数。因此,在Python 3.x中,请使用括号来包含打印的内容,例如:print("hello world")。 3. 整除运算符:在Python 2.x中,使用单斜杠(/)进行整除运算,结果为整数,而在Python 3.x中,使用两个斜杠(//)进行整除运算,结果为浮点数。 4. xrange函数和range函数:在Python 2.x中,我们使用xrange函数生成一个迭代器对象,而在Python 3.x中,xrange函数已经被删除了,而range函数直接返回一个迭代器对象。 5. 异常:在Python 2.x中,异常类型可以是字符串或实例对象,而在Python 3.x中,只能是实例对象。因此,在Python 3.x中,请使用try-except语句来处理异常,而不是try-except语句。 6. input函数和raw_input函数:在Python 2.x中,我们使用raw_input函数来获取用户输入,而在Python 3.x中,这个函数已经被删除了,它被替换为input函数。 总结起来,Python 2.x和3.x之间的不兼容主要表现在编码、print函数、整除运算符、xrange函数和range函数、异常以及input函数和raw_input函数等方面。因此,我们需要认真学习并理解这些不兼容的内容,以便在编码时避免出现问题。 ### 回答3: Python是一种广受欢迎的高级编程语言,提供了许多丰富的编程工具和库。但是,Python在2.x和3.x版本之间有很多不兼容之处,这对于那些习惯于Python 2.x的开发人员来说可能是一个问题。 最重要的不兼容之处是语言的语法改变。Python 3.x的语法与之前版本有很大不同,比如print语句就有了一个参数。在Python 2中,它可以像这样使用: ``` print "Hello, world!" ``` 但是在Python 3中,你必须使用括号: ``` print("Hello, world!") ``` Python 3.x还引入了新的关键字,比如async和await。这些关键字在Python 2.x中并不存在,并且如果尝试在Python 2中使用这些关键字,会导致语法错误。 Python 3.x还有一个重要的不兼容点是对Unicode的处理方式。在Python 2.x中,字符串被表示为8位ASCII字符,但在Python 3.x中,字符串被表示为Unicode字符。这意味着在Python 2.x中可以使用类似“str”和“unicode”的函数来处理字符串,但在Python 3.x中只能使用一个“str”函数来处理所有类型的字符串。 此外,Python 3.x中还删除了一些在之前版本中广泛使用的模块和函数。例如,许多与旧版本的“tkinter”库相关的函数被删除,而在Python 2.x中使用的“file”函数也被删除。 综上所述,Python 2.x和3.x之间有很多不兼容之处。对于那些从Python 2.x迁移到Python 3.x的开发人员来说,这些不兼容问题需要花费一些时间和精力来解决。但是,Python 3.x引入了很多新的特性和功能,是新项目的绝佳选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值