python3.6 diff htm_Python 2 和 Python 3 有哪些主要区别?

今天改一个小爬虫,从github下载下来运行才发现是python2,那就只能一点一点改成python3了…………

其实2和3还是有好多不同的,我改的时候边改边记,记了不少两者的差别。如果你也知道有其他区别的话,欢迎补充在评论区~

1. From Queue import Queue=> import queue

2. except Exception,e: => except Exception as e:

3. print … => print(…)

4. 常用库

pip install apipkg Appium-Python-Client asn1crypto atomicwrites Automat beautifulsoup4 blessings bpmappers bpython callable certifi cffi chardet chmod Click client colorama comtypes configparser constantly cryptography cssselect curtsies defusedxml diff-match-patch Django django-appconf django-cors-headers django-dajax django-dajaxice django-filter django-import-export django-model-utils django-users2 djangorestframework DjangoUeditor easygui et-xmlfile execnet Flask future gevent glob2 Gooey greenlet gunicorn httpie hyperlink idna image importlib-metadata incremental itchat itsdangerous jdcal Jinja2 locustio lxml Mako Markdown MarkupSafe more-itertools msgpack mysql-connector mysql-connector-python mysqlclient numpy odfpy openpyxl packaging pamqp pandas parse parse-type parsel pathlib peewee pika Pillow pip pluggy protobuf psutil public py pyasn1 pyasn1-modules pycket pycparser PyDispatcher Pygments PyHamcrest pymongo PyMySQL pyOpenSSL pyparsing pypng Pypubsub PyQRCode pytesseract pytest pytest-base-url pytest-bdd pytest-forked pytest-html pytest-metadata pytest-ordering pytest-rerunfailures pytest-selenium pytest-timeout pytest-variables pytest-xdist python-dateutil pytz pywifi PyYAML pyzmq qrcode queuelib rabbitpy redis requests runcmd Scrapy selenium Serialize serializers service-identity setuptools sh simplejson six soupsieve South SQLAlchemy tablib test tornado torndb Twisted typing unicodecsv urllib3 utils uwsgitop w3lib wcwidth Werkzeug wheel wxpy wxPython xlrd xlwt you-get zipp zope.interface

5. 在python2中,reload()是内置函数,能够直接使用。

但是在python3中,直接使用reload()会报错,需要从imp中导入。

from imp import reload

reload()

6. Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding

基于python3.6.1版本,在一个.py文件中,加入这3行:

import requests, re, sys

reload(sys)

sys.setdefaultencoding("utf-8")

出现这样的错误:

sys.setdefaultencoding("utf-8")

AttributeError: module 'sys' has no attribute 'setdefaultencoding'

因为Python3字符串默认编码unicode, 所以sys.setdefaultencoding也不存在了。去掉sys.setdefaultencoding

7. Import urllib Urllib.quote()=>import urllib.parse urllib.parse.quote()

8. python3报错

print("Response:", resp.text.decode('unicode_escape'))

=>print("Response:", resp.text.encode('utf-8').decode('unicode_escape'))

中间加上.encode('utf-8')即可。

因为python3里面,字符串要先encode手动指定其为某一编码的字节码之后,才能decode解码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值