问题一
今天通过实验楼学习Python3命令行火车票查看器,按步骤输入一下代码:
出现的结果如下图,并非教程的结果:
经查,为
Usage
块和Options
之间缺一个换行,这应该是docopt的代码规范。
所以还是不能尽抄代码,还是要多看模块文档了解真正用法。
-
后来在docopt官方github的issues找到同样问题:
问题二
parse_station.py
代码如下:
# coding:utf-8
import re
import requests
from pprint import pprint
url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8997'
response = requests.get(url, verify=False)
stations = re.findall(u'([\u4e00-\u9fa5]+)\|([A-Z]+)', response.text)
pprint(dict(stations), indent=4)
然后在windows中的cmd上输入:python parse_station.py > stati.py
,然后打开stati.py出现如下乱码:
错误提示:
File was loaded in the wrong encoding:'UTF-8
显然是编码出现了问题,经查是因为windows的命令行默认是GBK,而保存下来的文件默认是UTF-8,所以解决方法是先把cmd的编码改为UTF-8,然后重新运行一下(暂时还未测试,网上查有更改方法)。我用的办法是:点击Pycharm右上方的
Reload in another encoding
,把乱码文档先改成GBK编码,这样就显示正常了,然后复制文档内容,再新建一个.py文档,把内容粘贴进去,此时就能在UTF-8下正常显示内容。