python实现遍历数据库并获取key的值

遍历redis数据库中有以格式为prefix_*的按照key-value方式存储的key,并打印其值.

遍历使用scan,因为keys prefix_*可能会造成redis长时间阻塞。
查询使用pipeline减少交互,提高效率。

import redis
import hiredis
pool = redis.connectionpool(host=’127.0.0.1′, port=6379, db=0)
r = redis.redis(connection_pool=pool)
pipe = r.pipeline()
pipe_size = 100000
len = 0
key_list = []
for key in r.scan_iter(match=’prefix_*’, count=100000):
key_list.append(key)
pipe.get(key)
if len < pipe_size: len += 1 else: for (k, v) in zip(key_list, pipe.execute()): print k, v len = 0 key_list = [] for (k, v) in zip(key_list, pipe.execute()): print k, v

附上其他网页的代码,参考下吧

# filename itertaorfilefolder
import os
import os.path
filepath = raw_input(‘enter filepath : ‘)
#遍历文件夹
#三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for parent ,dirnames , filenames in os.walk(filepath):
#输出文件夹信息
for dirname in dirnames:
print ‘parent is :’+parent
print ‘dirname is ‘+ dirname
#输出文件信息
for filename in filenames :
print ‘parent is :’+parent
print ‘filename is :’ + filename
#输出文件路径信息
currentpath = os.path.join(parent,filename)
print ‘the fulll name of the file is :’+ currentpath
filesize = os.path.getsize(currentpath)/1024/1024
print ‘the file size is : %.3f mb’ %(filesize)
#删除大于50m的文件
if filesize > 50:
delete = raw_input(‘ are you sure to delete ?’)
if delete == ‘yes’:
os.remove(currentpath)

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论