命令行的随机数据生成器
fakr的Python项目详细描述
随机数据,同性恋!
fakr从stdin读取jinja2模板,使用词汇表呈现它,并将结果写入stdout。就这么简单……
安装
$ pip install fakr
基本用法
$ fakr --help
示例
生成一个包含10万行的简单csv文件
$ echo "{{row}},{{row%100}},{{firstname}},{{lastname}},{{email}}" \ | fakr --count 100000``
为复杂模板使用文件
$ cat examples/templates/vcard.tpl \ | fakr --count 1000
使用curl发出http请求:
$ echo "company={{company|urlencode}}&city={{city|urlencode}}" \ | fakr -c1 \ | curl httpbin.org/post -d @-
将数据写入redis服务器:
$ echo 'firstname \"{{firstname}}\" lastname \"{{lastname}}\" email \"{{email}}\"' \ | fakr \ | xargs -i redis-cli HMSET {}``
模板
用于数据生成的模板是普通的Jinja2 Templates。有关详细信息,请参阅他们的参考资料。
有一些自定义过滤器、函数和变量可用于fakr:
自定义筛选器:
- ascii:将值转换为ascii(使用Unidecode)(即{{lastname|ascii}})
- shuffle:随机洗牌值(即{{lastname|shuffle}})
- chance:使值有机会从0.0返回到1.0(即{{firstname|chance(0.9)}}-firstname将返回90%,10%为空)
- rjust:右对齐给定的值(即{{company|rjust(40)}})
- ljust:左对齐给定的值(即{{company|ljust(40)}})
- center:使值的宽度居中(即{{company|center(40)}})
- hash:使用给定的哈希算法(即{email hash('md5')})计算哈希值
自定义函数:
- translate
- uuid4:每次调用时返回一个新的uuidv4(即{{uuid4()}})
- unixtime:以秒为单位返回当前unixtime(即{{unixtime()}})
固定(词汇独立)变量:
- row:当前数据集的行(从0开始)
- id:当前数据集的ID或序列号
- guid:以类似uuid的方式表示id。