原始碼:
"""
usage:
tyxkets [-gd] options:
-h:幫助
-g:高鐵
-d:動車
from:出發地
to:目的地
date:日期
"""import docopt
import requests
import re
from prettytable import prettytable
args = docopt.docopt(__doc__)
url=""
r = requests.get(url, verify=false)
#正則匹配出代號與名字的拼音
stations = re.findall(r'([a-z]+)\|([a-z]+)',r.text)
stations = dict(stations)
stations = dict(zip(stations.values(),stations.keys()))
#print(stations)
#從命令列引數中拿到出發地,目的地,時間
fromstation = args['']
tostation = args['']
datetime = args['']
#根據引數匹配出車站代號
fromstation = stations.get(fromstation)
tostation = stations.get(tostation)
#根據出發地目的地時間查詢車票
url2 = ""+datetime+"&from_station="+fromstation+"&to_station="+tostation
print(url2)
r2 = requests.get(url2,verify=false)
ticketsinfo = r2.json()['data']['datas']
# 顯示車次、出發/到達站、 出發/到達時間、歷時、一等坐、二等坐、軟臥、硬臥、硬座
header = 'train station time duration first second softsleep hardsleep hardsit'.split()
deftrains
():for ticket in ticketsinfo:
train=[
#車次ticket.get('station_train_code'),
#出發/到達站
'\n'.join([ticket.get('from_station_name'), ticket.get('to_station_name')]),
#出發/到達時間
'\n'.join([ticket.get('start_time'), ticket.get('arrive_time')]),
#歷時ticket.get('lishi').replace(":","h")+"m",
#一等座
ticket.get('zy_num'),
#二等座
ticket.get('ze_num'),
#軟臥ticket.get('rw_num'),
#硬臥ticket.get('yw_num'),
#硬座ticket.get('yz_num')
]yield train
pt = prettytable()
#設定每一列的標題
pt._set_field_names(header)
for train in trains():
pt.add_row(train)
print(pt)
用法:python tickets.py
示例:python tickets.py shanghai beijing 2016-10-01
注意:日期中如果是單數,要在前面補0,比如2023年十月一號得寫成2016-10-01而不是2016-10-1
會不斷完善的,等著吧
python常用小工具
for i in range 32 image tensor2 image tensor1 0,i plt.imshow image tensor2 plt.show 比如 篩選列表中最後字元為 relu6 的元素 x for x in a if x 5 relu6 tmp 是pil影象 impor...
python小工具 tqdm介紹
在執行耗時任務的時候,我們希望能有乙個進度條告訴我們程式正在執行中而不是掛了。在python中恰好有乙個非常好用的進度條工具tqdm,該工具能夠在迴圈語句中新增乙個動態的進度條動畫,非常實用。如果你還沒有安裝tqdm,執行pip install tqdm安裝一下。如何使用tqdm?直接看下面的例子,...
python轉小工具exe
在cmd中安裝virtualenv 用於建立虛擬環境 pyinstaller 用於轉換工具 pip install virtualenv pip install pyinstaller 2.啟用virtualenv 先在cmd中轉到virtualenv安裝所在的目錄下 d cd d software...