python - 如何阅读 zip 文件中的 50 多个文本文件?
问题描述
我正在尝试编写一个函数,该函数将列表作为输入并确定列表中的数字序列是否对应于 zipfile 中许多文本文件中的数字序列。每个文本文件页面包含 2 个不同的数字。例如,如果用户输入 [1, 30, 3],则程序应从读取第 1 页开始,以查看数字 30 是否在该页上。如果数字 30 在该页面上,则程序应通读第 30 页以查看数字 3 是否存在。如果数字 3 存在,那么序列是正确的,程序应该返回 true,如果序列在任何时候都不正确,它应该返回 false。如何有效地阅读所有页面?(不允许使用 zipfile 模块)
解决方案
我创建了以下代码来说明 testSequence 方法
class zipSequence(object):
def __init__(self, **kwargs):
self.zFN = kwargs['zipfile']
self.seqList = kwargs['seqList']
self.accessPageList(**kwargs)
def accessPageList(self, **kwargs):
'''
FIXME: create access to list of pages
'''
mx = max(self.seqList)+1
mxList = range(mx)
self.pgList = [None for i in mxList]
for i in mxList:
n1= self.seqList[i]
try: n2 = self.seqList[i+1]
except: break
v = str((n1,n2))
self.pgList[n1] = v
def page(self, i, **kwargs):
'''
FIXME: access page 'i'; either via zipfile or exec
'''
return self.pgList[i]
def testSequence(self):
mxList = range(len(self.seqList))
for i in mxList[0:-1]:
pattern = self.seqList[i+1]
curPage = self.seqList[i]
page = self.page(curPage)
if page.find(str(pattern)) > -1: continue
print("Page %d does not contain %d" % seq)
return False
print("Sequence is valid", self.seqList)
return True
ts = zipSequence(zipfile = 'dummy.zip', seqList = [1,30,3])
ts.testSequence()
推荐阅读
- c# - C# MongoDB 字段映射
- excel - Excel:需要根据一列中两列(日期之间)的日期范围求和
- python - 如何使代码打印 1 2 3 4 2 2 3 4 3 2 3 4 等?使用 For 循环
- spring-boot - 在 SAP Neo Cloud Tomcat 上运行 Spring Boot 2 应用程序
- c# - C# asp.net WebForm 添加 JS 并从后面的代码运行
- javascript - 将动态行添加到表中
- javascript - 在 props 渲染上取消 componentDidMount 中的 setInterval
- javascript - 如何将 jsmodeller jsonData 转换为 jsmodeller Body
- reactjs - 使用块的 React 网站的 CDN 缓存策略
- php - PHP7 hashtable内部结构