Python 用于声明和填写列表问题

Python 用于声明和填写列表问题,python,Python,我有一个函数来读取一个文件,并用x个文件行的元组填充一个列表,然后在列表中有x个元素后执行一些操作,然后清空这个列表 def accesslog_parser(chunk_size): chunk = [] with open('access.log', 'r') as accesslog: # Open file for line in accesslog: chunk.append(tuple(line.split()))

我有一个函数来读取一个文件,并用x个文件行的元组填充一个列表,然后在列表中有x个元素后执行一些操作,然后清空这个列表

def accesslog_parser(chunk_size):
    chunk = []
    with open('access.log', 'r') as accesslog:     # Open file
        for line in accesslog:
            chunk.append(tuple(line.split()))
            if len(chunk) == chunk_size:
                print 'Printing a chunk \n'
                print chunk
                #process(chunk) # Do something with this chunk
                chunk = []            # Once processed, set empty
如果我用

accesslog_parser(100)
我得到了我想要的,但如果最后一块 如何修复/改进此问题?

只要运行
process(chunk)
就可以了,如果还有什么问题

def accesslog_parser(chunk_size):
    chunk = []
    with open('access.log', 'r') as accesslog:
        ...
    if chunk:
        process(chunk)

我想你要做的是,如果区块大于100,打印区块的前100个字符,否则打印所有字符。因此:

if len(chunk) >= chunk_size:
    print chunk[0:100]
else:
    print chunk

不客气,有时候最简单的解决方案是最后想到的