pybloom 安装及使用

参考链接:
https://segmentfault.com/q/1010000008344013

  1. linux python3环境下
    pip install pybloomfilter
    pip install pybloom
    pip install pybloomfiltermmap
    pip install pybloomfiltermmap3 (仅该种方法可用)
    哪个好用用哪个
    链接: https://github.com/jaybaird/python-bloomfilter/
    安装:
    pip install pybloomfiltermmap3
    报错信息:
    ERROR: Command errored out with exit status 1:
    command: /home/260199/software/anaconda3/bin/python -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘“‘“‘/tmp/pip-install-4509_mef/pybloomfiltermmap3/setup.py’”‘“‘; file=’”‘“‘/tmp/pip-install-4509_mef/pybloomfiltermmap3/setup.py’”‘“‘;f=getattr(tokenize, ‘“‘“‘open’”‘“‘, open)(file);code=f.read().replace(‘“‘“‘\r\n’”‘“‘, ‘“‘“‘\n’”‘“‘);f.close();exec(compile(code, file, ‘“‘“‘exec’”‘“‘))’ egg_info —egg-base /tmp/pip-install-4509_mef/pybloomfiltermmap3/pip-egg-info
    cwd: /tmp/pip-install-4509_mef/pybloomfiltermmap3/
    Complete output (1 lines):
    Cython module not found. Hint: to build pybloomfilter using the distributed source code, run ‘python setup.py install —no-cython’.
    ————————————————————
    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    解决方法: pip install cython
    使用:

    1. from pybloomfilter import BloomFilter
    2. # 创建bloom并记录在内存中
    3. f = BloomFilter(10000, 0.0001, 'aaaa.bloom')
    4. f = BloomFilter(capacity=10000, error_rate=0.0001, filename='aaaa.bloom')
    5. # 打开bloom
    6. f = BloomFilter.open('XXXX.bloom')
    7. # 添加一个
    8. f.add('yyy')
    9. # 添加很多
    10. # f.update(iterable)
    11. f.update(["20", "21", "22"])
    12. # 删除所有
    13. f.clear_all()
    14. # 复制并另起名为zzz.bloom
    15. f.copy('zzz.bloom')
    16. # 与nmap文件同步
    17. f.sync()


参考链接:https://blog.csdn.net/u013095333/article/details/83412788

  1. windows环境下
    pip install pybloom-live
    链接: https://github.com/joseph-fox/python-bloomfilter
    使用: ```python from pybloom_live import BloomFilter

创建bloom

b = BloomFilter(100000, 0.00001) b.tofile(open(‘xx.bloom’), ‘wb’)

添加

b = BloomFilter.fromfile(open(‘xx.bloom’), ‘rb’) b.add(‘yyy’) b.tofile(open(‘xx.bloom’), ‘wb’) # 必须要写进去 ```