Python 写了一个命令行火车票查看器.

2016 年 6 月 11 日
 protream

docopt 真是写命令行应用的神器啊, 刚撸了一个命令行查询火车余票的工具,tickets, 命令行下输入:

$ tickets 上海 北京 2016615

或者添加参数, 如 -dt获取动车和特快,

$ tickets -dt 上海 北京 2016615

结果如下,

其他参数

项目已经提交到github 和 PyPI, 大家可以查看源码, 或

$ pip install tickets

安装使用.

9683 次点击
所在节点    Python
70 条回复
justou
2016 年 6 月 11 日
@protream
# For Python2
if sys.version < '3':
reload(sys)
sys.setdefaultencoding('utf-8')

看了下源码, py2 下这样做是很危险的, 会打乱整个程序的运行环境, 尤其是当使用了 sys.setdefaultencoding('utf-8')的代码被用到更大的程序中时, 程序何时崩溃都不奇怪, 一开始处理编码问题时也这样用, 直到程序莫名其妙的退出...
http://stackoverflow.com/search?q=sys.setdefaultencoding%28%27utf-8%27%29
protream
2016 年 6 月 11 日
@justou 谢谢指点, 正要修改一下,统一为 unicode
sudo987
2016 年 6 月 11 日
iOS 下不能输入中文,怎么解决
cc7756789
2016 年 6 月 11 日
这个数据是从哪里查的
protream
2016 年 6 月 11 日
@cc7756789 12306
fhefh
2016 年 6 月 11 日
nice
sixer
2016 年 6 月 11 日
真不错
Arnie97
2016 年 6 月 11 日
除了编码坑以外, ANSI 转义字符在 Windows 下也不能用。可以考虑 colorama
araraloren
2016 年 6 月 12 日
@cc7756789 12306 实时爬取的,否则有啥意义。。
wujunze
2016 年 6 月 12 日
最近在学 python mark 一下
Tink
2016 年 6 月 12 日
这类界面一般是咋画出来的
protream
2016 年 6 月 12 日
@Tink Python 的一点好处就是有很多简单易用的库, 这是一个叫 PrettyTable 的库画出来的
daiqiangbudainiu
2016 年 6 月 12 日
没看具体的,不过当我看到 Linux 下编写, Windows 下没有测试,而且还是个命令行工具的时候,我就知道编码问题要出来了
protream
2016 年 6 月 12 日
@Arnie97 谢谢, 目前还没做 Windows 兼容, 以后会考虑使用
protream
2016 年 6 月 12 日
@warcraft1236 大神, 求指点
daiqiangbudainiu
2016 年 6 月 12 日
@protream 我也是初学者。也是头疼编码的问题很多次,才稍微了解一下。简单来说就是, Windows 下的 CMD 用汉字编码是 GBK ,而 Linux 这些是 UTF-8 , GBK 的字数少,所以有些 UTF-8 编码存在的文字, GBK 不存在,而且 GBK 是有损编码,所以这两个编码在转换中不能保持一致,就是 UTF-8 字符串转换成 GBK 然后再转成 UTF-8 之后,和原字符串不是相等的。具体的文章,伯乐在线有过相关文章,具体名字既不清楚了,是讲 MySQL 的 编码问题,讲了常用的编码是怎么回事
protream
2016 年 6 月 12 日
@warcraft1236 谢谢。感觉要是都用 utf-8 编码这个世界就清静了。
cruisehu
2016 年 6 月 12 日
Could not find a version that satisfies the requirement ticket (from versions: )
No matching distribution found for ticket
wjfz
2016 年 6 月 12 日
看评论想到一个段子: Pythoner 一半时间都在解决编码问题😂
protream
2016 年 6 月 12 日
@cruisehu 抱歉阿,版本更新的时候出了点问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/284909

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX