pybloom 安装及使用
参考链接:
https://segmentfault.com/q/1010000008344013
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
使用:from pybloomfilter import BloomFilter
# 创建bloom并记录在内存中
f = BloomFilter(10000, 0.0001, 'aaaa.bloom')
f = BloomFilter(capacity=10000, error_rate=0.0001, filename='aaaa.bloom')
# 打开bloom
f = BloomFilter.open('XXXX.bloom')
# 添加一个
f.add('yyy')
# 添加很多
# f.update(iterable)
f.update(["20", "21", "22"])
# 删除所有
f.clear_all()
# 复制并另起名为zzz.bloom
f.copy('zzz.bloom')
# 与nmap文件同步
f.sync()
参考链接:https://blog.csdn.net/u013095333/article/details/83412788
- 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’) # 必须要写进去 ```