遍历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)
以上所述就是本文的全部内容了,希望大家能够喜欢。