命令行中的制表符分隔文件操作工具
tabtools的Python项目详细描述
Build | Coverage | Documentation | PyPI | Code |
---|---|---|---|---|
安装
pipinstalltabtools
或者从dist目录复制粘贴文件。每一个都是独立的 可执行脚本。
测试
tox
文档
- 访问docs文件夹并安装python依赖项:sphinx, Napoleon 插件和readthedocs theme。
- 生成文档:make html
- 从docs/_build/html文件夹提供本地文件: python -mSimpleHTTPServer
注释
示例:将csv转换为tsv:
cat <(printf"# ") <(cat file.csv | tr ",""\t")
示例
演示文件由汇丰银行每日股票数据组成。
> head tabtools/tests/files/hsbc-stock.tsv # Date Open High Low Close Volume 2014-02-21 84.35 84.45 83.9 83.45 17275.0 2014-02-24 83.85 84.4 83.75 84.35 10549.0 2014-02-25 81.65 82.3 81.6 83.9 31186.0 2014-02-26 81.15 81.65 81.0 81.65 18937.0 2014-02-27 81.85 82.4 81.0 81.15 19688.0 2014-02-28 82.25 82.45 81.8 81.9 10806.0 2014-03-05 81.4 81.7 81.15 81.5 6101.0 2014-03-06 81.5 81.75 81.05 81.4 8642.0 2014-03-07 81.3 81.45 81.05 81.45 15464.0
将每日数据转换为每周数据:
> head tabtools/tests/files/hsbc-stock.tsv \ | tgrp -k 'week=strftime("%U", DateEpoch(Date))'\ # Define aggregation key (map emitter) -g "Date=FIRST(Date); Open=FIRST(Open); High=MAX(High)"\ # Aggregated values to compute -g "Low=MIN(Low); Close=LAST(Close); Volume=SUM(Volume)"# Extra aggregated values # week Date Open High Low Close Volume 072014-02-21 84.35 84.45 83.9 83.45 17275.0 082014-02-24 83.85 84.4 81.0 81.9 91166092014-03-05 81.4 81.75 81.05 81.45 30207
排序原始文件,计算3个不同的ema(指数移动 平均),macd和简单移动平均指标,选择最后10个 线条和美化输出:
> cat tabtools/tests/files/hsbc-stock.tsv \ | tsrt -k Date \ # Sort by column name, not by "field number 1" | tawk -o "Date; Open; High; Low; Close; Volume"\ # output original fields -o "fast_macd = EMA(Close, 12) - EMA(Close, 26); slow_macd = EMA(fast_macd, 9)"\ -o "macd_histogram = fast_macd - slow_macd; ma50 = AVG(Close, 50)"\ | ttail \ | tpretty Date | Open | High | Low | Close | Volume | fast_macd | slow_macd | macd_histogram | ma50 -----------+-------+-------+-------+-------+---------+-----------+-----------+----------------+--------- 2015-07-02 |69.55 |69.75 |69.3 |70.15 |17180.0 | -0.577588 | -0.302581 | -0.275007 |73.7404 2015-07-03 |69.55 |70.25 |69.45 |69.55 |13640.0 | -0.74297 | -0.390658 | -0.352311 |73.7224 2015-07-06 |67.6 |68.85 |67.0 |69.55 |34244.0 | -0.864075 | -0.485342 | -0.378734 |73.6964 2015-07-07 |68.7 |69.0 |68.35 |67.9 |15676.0 | -1.08074 | -0.604421 | -0.476315 |73.6454 2015-07-08 |66.2 |67.6 |66.0 |68.45 |31911.0 | -1.19429 | -0.722395 | -0.471898 |73.5984 2015-07-09 |67.05 |67.5 |65.35 |65.75 |29040.0 | -1.48504 | -0.874924 | -0.610114 |73.4374 2015-07-10 |68.1 |68.45 |67.0 |67.75 |31350.0 | -1.53636 | -1.00721 | -0.529149 |73.2634 2015-07-13 |69.0 |69.05 |67.0 |68.1 |16601.0 | -1.53114 | -1.112 | -0.419145 |73.0974 2015-07-14 |68.25 |69.0 |68.0 |69.05 |15219.0 | -1.43382 | -1.17636 | -0.257459 |72.9294 2015-07-15 |69.0 |69.45 |68.7 |68.55 |9676.0 | -1.38112 | -1.21731 | -0.163806 |72.7614
待办事项:
- 按版本(工作流)添加Circleci的生成状态徽标
- 在不同的python环境中测试: https://discuss.circleci.com/t/testing-in-different-environments/450/13