Python 从文本文件中一次读取4行或几行

Python 从文本文件中一次读取4行或几行,python,file,Python,File,我正试图在python上编写一个手机注册代码。假设我从文本文件中读取不同的联系人。名单上的每个联系人大约需要4行,我试着一次读一行(这很有效),但我想知道是否有更简单的方法,例如直接读4行,或者创建一个对象列表或列表,这可能吗?如果是这样的话?我不知道你说的“大约4行”是什么意思,但这里有一个开始: with open('thefile.txt') as infile: while True: parts = [infile.readline() for _ in ran

我正试图在python上编写一个手机注册代码。假设我从文本文件中读取不同的联系人。名单上的每个联系人大约需要4行,我试着一次读一行(这很有效),但我想知道是否有更简单的方法,例如直接读4行,或者创建一个对象列表或列表,这可能吗?如果是这样的话?

我不知道你说的“大约4行”是什么意思,但这里有一个开始:

with open('thefile.txt') as infile:
    while True:
        parts = [infile.readline() for _ in range(4)]
        if not any(parts):
            break
        part1, part2, part3, part4 = parts

假设您尝试读取的文件是contacts.txt,并且位于当前路径

      with open('contacts.txt','r') as f:
           lines = f.readlines()
      for i in xrange(0,len(lines),4):
           contact_source = lines[0:i]
           BuildObject(contact_source)

您可以使用这样的生成器函数(您不需要在此处最初读取整个文件)


您可以对范围(4)中的每一行使用
,然后以这种方式阅读这四行内容。您能解释更多吗?那将很好:)如果我向您展示我制作的代码,会有帮助吗?代码应该能够读取和写入文件,并允许用户编辑文件。并且
对于范围(4)中的每个文件:
将运行以下代码四次,以下代码正在读取文件是!这有助于我将其形象化并更深入地理解:)例如,在文本文件中,联系人可以是这样的姓氏姓名电话号码地址上面所有这四行在xrange(0,len(lines),4)中描述了一个人,x意味着什么?在python 2.x中,xrange是一个生成器,而不是range创建列表,在for循环中使用哪个更有效(从空间角度看)。就功能而言,xrange()相当于range()
def multilinefile(fn, no_lns):
    f, lines = open(fn), []
    while '' not in lines:
        lines = map(lambda s: f.readline(), range(no_lns))
        if lines[0] == '':
            break
        yield ''.join(lines)

for line in multilinefile(your_file, 4):
    print line