問題一
今天通過實驗樓學習Python3命令行火車票查看器,按步驟輸入一下代碼:
filehelper_1487040497138_18.png
出現的結果如下圖,并非教程的結果:
filehelper_1487040654781_5.png
經查,為
Usage
塊和Options
之間缺一個換行,這應該是docopt的代碼規范。
修改后.png
結果.png
所以還是不能盡抄代碼,還是要多看模塊文檔了解真正用法。
-
后來在docopt官方github的issues找到同樣問題:圖片發自簡書App
問題二
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出現如下亂碼:
亂碼.png
錯誤提示:
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下正常顯示內容。