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

2016-06-11 15:12:33 +08:00
 protream

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

$ tickets 上海 北京 2016615

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

$ tickets -dt 上海 北京 2016615

结果如下,

其他参数

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

$ pip install tickets

安装使用.

8776 次点击
所在节点    Python
70 条回复
justou
2016-06-11 17:55:46 +08:00
@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-06-11 17:58:51 +08:00
@justou 谢谢指点, 正要修改一下,统一为 unicode
sudo987
2016-06-11 18:26:26 +08:00
iOS 下不能输入中文,怎么解决
cc7756789
2016-06-11 18:53:44 +08:00
这个数据是从哪里查的
protream
2016-06-11 19:38:25 +08:00
@cc7756789 12306
fhefh
2016-06-11 23:20:49 +08:00
nice
sixer
2016-06-11 23:46:00 +08:00
真不错
Arnie97
2016-06-11 23:46:08 +08:00
除了编码坑以外, ANSI 转义字符在 Windows 下也不能用。可以考虑 colorama
araraloren
2016-06-12 09:05:48 +08:00
@cc7756789 12306 实时爬取的,否则有啥意义。。
wujunze
2016-06-12 10:20:40 +08:00
最近在学 python mark 一下
Tink
2016-06-12 10:31:10 +08:00
这类界面一般是咋画出来的
protream
2016-06-12 11:06:18 +08:00
@Tink Python 的一点好处就是有很多简单易用的库, 这是一个叫 PrettyTable 的库画出来的
warcraft1236
2016-06-12 11:08:17 +08:00
没看具体的,不过当我看到 Linux 下编写, Windows 下没有测试,而且还是个命令行工具的时候,我就知道编码问题要出来了
protream
2016-06-12 11:08:36 +08:00
@Arnie97 谢谢, 目前还没做 Windows 兼容, 以后会考虑使用
protream
2016-06-12 11:12:08 +08:00
@warcraft1236 大神, 求指点
warcraft1236
2016-06-12 11:18:35 +08:00
@protream 我也是初学者。也是头疼编码的问题很多次,才稍微了解一下。简单来说就是, Windows 下的 CMD 用汉字编码是 GBK ,而 Linux 这些是 UTF-8 , GBK 的字数少,所以有些 UTF-8 编码存在的文字, GBK 不存在,而且 GBK 是有损编码,所以这两个编码在转换中不能保持一致,就是 UTF-8 字符串转换成 GBK 然后再转成 UTF-8 之后,和原字符串不是相等的。具体的文章,伯乐在线有过相关文章,具体名字既不清楚了,是讲 MySQL 的 编码问题,讲了常用的编码是怎么回事
protream
2016-06-12 11:35:32 +08:00
@warcraft1236 谢谢。感觉要是都用 utf-8 编码这个世界就清静了。
cruisehu
2016-06-12 12:16:17 +08:00
Could not find a version that satisfies the requirement ticket (from versions: )
No matching distribution found for ticket
wjfz
2016-06-12 13:12:02 +08:00
看评论想到一个段子: Pythoner 一半时间都在解决编码问题😂
protream
2016-06-12 13:54:04 +08:00
@cruisehu 抱歉阿,版本更新的时候出了点问题

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

https://www.v2ex.com/t/284909

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

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

© 2021 V2EX