https://travis-ci.org/chinapnr/fishbase.svg?branch=master https://coveralls.io/repos/github/chinapnr/fishbase/badge.svg?branch=master https://readthedocs.org/projects/fishbase/badge/?version=latest https://ci.appveyor.com/api/projects/status/ecskod12wy8fvkxu?svg=true

fishbase 简介

fishbase 是由我们开发和整理的一套 Python基础函数库,将我们平时在开发 Python项目时候的各类工具函数汇聚到一起,方便集中管理和使用。希望对你也有所帮助,也适合初学 Python 的朋友通过代码来学习。

fishbase 最新版本为 v1.6,支持 Python 3.5-3.10,绝大部分函数也能工作在 Python 2.7下,但是我们不推荐使用 Python 2.7。

fishbase 主要有以下功能模块:

模块 功能函数
fish_common 基本函数包
fish_crypt 加密数据函数包
fish_csv csv处理增强函数包
fish_data 数据处理函数包,包括银行卡、身份证等
fish_date 日期处理增强函数包
fish_file 文件处理增强函数包
fish_logger 日志记录增强函数包
fish_project 项目目录结构生成函数包
fish_random 随机数据生成增强函数包
fish_system 系统增强函数包

安装

# 通过 pip 进行安装或者更新
pip install -U fishbase

fishbase 功能举例

获取文件的绝对路径

>>> from fishbase.fish_files import get_abs_filename_with_sub_path
>>> print(get_abs_filename_with_sub_path('/etc', 'hosts'))
(True, '/etc/hosts')

根据时间戳获取时间间隔

>>> from fishbase.fish_date import get_time_interval
>>> print(get_time_interval(1548575829,1548476921))
{'days': 1, 'hours': 3, 'minutes': 28, 'seconds': 28}

生成随机符合校验规则的身份证和银行卡数据

>>> from fishbase.fish_random import gen_random_id_card
>>> # 随机生成一个身份证号
>>> print(gen_random_id_card())
['3101091986******47']
>>> from fishbase.fish_random import gen_random_bank_card
>>> # 随机生成一个中国银行的信用卡卡号
>>> print(gen_random_bank_card('中国银行', 'CC'))
625907379******1

创建项目结构

>>> import os
>>> from fishbase.fish_project import init_project_by_yml
>>> package_yml = '''
... project: hellopackage
... tree:
...     - README.md
...     - requirements.txt
...     - setup.py
... '''
>>> # 通过 yml 文件创建一个项目结构
>>> init_project_by_yml(package_yml, '.')
>>> print(os.listdir('./hellopackage'))
['requirements.txt', 'README.md', 'setup.py']

更新记录

2022.9.13 v1.6

  • #303 , update setup.py, add install_requires chardet
  • #302 , update fish_common.py, modify yaml load method.

2021.7.20 v1.5

  • #300 , fish_logger 中的 log 文件默认后缀修改为 .log,日期移到文件名开头;
  • 修改文档描述

2021.6.23 v1.4

  • #288 , fish_date 中的 GetRandomTime 修改为 RandomTime,其中函数名称修改为 get_random_datetime_this_month() get_random_datetime_this_year() get_random_date_by_year() get_random_date_by_range();
  • #292 , fish_data 增加敏感数据掩码显示类 SensitiveMask,增加函数 get_idcard_number() get_bankcard_number() get_mobile_number() get_email() ;
  • 修改小错误
  • 修改文档描述

2020.4.25 v1.3

  • #273 , 随机数包的文档举例中的函数名称错误修正;
  • #275 , 随机数,gen_random_id_card() 函数优化;

2020.3.28 v1.2

  • #255 #266 , 开始使用 github 的 Actions 进行 CI 集成;
  • #257 , conf_as_dict() 函数移动从 common 包移动到 system 包;
  • #259 , 增加 fish_object 函数包,面向对象增强函数;
  • #260 , common 包,删除 sorted_objs_by_attr() 函数和 get_group_list_data() 函数;
  • #261 , common 包,paging 函数名称修改为 get_page_data();
  • #263 , common 包,删除一些为了向前兼容的函数;
  • #263 , 删除 flask swagger 支持;

2019.12.5 v1.1.16

  • 为 flask应用添加 swagger模块 #249

2019.7.17 v1.1.15

  • 添加可选参数,定义日志文件格式 #240
  • 根据银行卡、身份证获取详细信息的方法 #243

2019.6.25 v1.1.14

  • 修复金额数字转中文大写时多个零的错误 #238
  • 按照特定长度分割长文本字符 #239

2019.6.11 v1.1.13

  • 数字金额和中文大写相互转换 #235

详细帮助

更多详细文档,请参见:http://fishbase.readthedocs.io/

如有好的建议,欢迎提 issue :https://github.com/chinapnr/fishbase/issues

感谢

自2016年3月初次发布以来,先后发布了20余个版本,非常感谢所有在 fishbase函数包发展过程中做出贡献的朋友们!

fishbase函数包的作者名单,按照时间先后列出如下:

Yi Jun

Leo

Zhang Muqing

Hu Jun

Jia Chunying

Yan Runsha

Miao Tianshi

Jin Xiongwei

Wang Xiaolong