Python 如何在打印前将文本文件数据行块与类别匹配?

Python 如何在打印前将文本文件数据行块与类别匹配?,python,list,loops,printing,text-files,Python,List,Loops,Printing,Text Files,我有一个txt文件,其中包含x个不同房产清单的数据。在my program.py中,txt文件中的每一行都通过readlines()排序到一个列表中,即每个列表元素都包含txt文件中的一行数据,让我们调用列表“属性”。对于txt文件中的每个属性,例如有4行数据: 在文本文件中: 90万 二百 五十 街道名称1 八万 一百 三十 街道名称2 WARE 90000(txt文件中的第1行)是房产一的价格,200是租金,50代表平方米,然后是streetname,然后是空行,然后是房产二的新数据,价格

我有一个txt文件,其中包含x个不同房产清单的数据。在my program.py中,txt文件中的每一行都通过readlines()排序到一个列表中,即每个列表元素都包含txt文件中的一行数据,让我们调用列表“属性”。对于txt文件中的每个属性,例如有4行数据:


在文本文件中:

90万

二百

五十

街道名称1

八万

一百

三十

街道名称2

WARE 90000(txt文件中的第1行)是房产一的价格,200是租金,50代表平方米,然后是streetname,然后是空行,然后是房产二的新数据,价格为80000,等等

我想将列表“properties[]”(每个元素都是文本文件中的一行)中的数据元素打印给用户,但同时通过程序(而不是文本文件)为每个数据行添加类别,然后对所有属性执行此操作,以便打印出所有属性的数据。每个属性的类别都相同,因此它们匹配txt文件中每个块的数据行。这是我如何为一个属性编写的示例:

print("\n"+"Price: "+properties[0]
      +"Rent: "+properties[1]
      +"Size: "+properties[2]
      +"Street: "+properties[3])
我如何创建一个公式来遍历“属性”列表中的所有元素和数据,并将它们打印到正确的类别中

我希望输出为:

价格:90万

租金:200

尺码:50

街道:街道名称1

空位线

价格:80万

租金:100

尺码:30

街道:Steetname2


。。。然后计划为每个块、每个属性制作一面,我将使用一个矩阵,并在整个矩阵中循环。对于你的意见,我会这样做

lines = open("file.txt", 'r').readlines()
properties = zip(*[x[i::4] for i in range(4)])
param_names = ("Price", "Rent", "Size", "Street")
for property in properties:
    print('\n')
    print('\n'.join(["%s: %s" % k, v for k, v in zip(param_names, property)]))


    #Open text file
    with open("example.txt","r") as textFile:
        #Read file and break into array of strings
        text = textFile.read().split()
    #Create empty arrays to store the formated text
    matrixOfProperties = []
    properties = []
    #Loop thru strings to format into an array of arrays of properties
    for index in  range(0,len(text)):
        #Apend propertie to the array of properties
        properties.append(text[index])
        '''
        When all the 4 properties where appended to the
        array of properties, appends the array to the
        matrix and clear the array
        '''
        if index%4 == 3:
            matrixOfProperties.append(properties)
            properties = []
    #Loops over the matrix printing all the elements
    for propertie in matrixOfProperties:
        print("\nPrice: "+propertie[0]
          +"\nRent: "+propertie[1]
          +"\nSize: "+propertie[2]
          +"\nStreet: "+propertie[3])


输入: 90万

二百

五十

街道名称1

八万

一百

三十

街道名称2

输出:

价格:900000
租金:200英镑 尺寸:50
街道:街道名称1

价格:80000
租金:100英镑 尺寸:30
街道:街道名称2


请提供您想要的输出方式谢谢!如果示例Street:Streetname 2,即Streetname和2之间的空格..我如何使其工作。。然后我得到两个字符串,而不是列表中的一个..?在打印之前,您必须编辑字符串,这取决于txt文件的设置方式,可能会有点困难。。。如果在txt文件中设置为Streetname2,并且您希望打印为Streetname2,请使用for继续该字符串并添加空格。如果它在您的文本文件上作为StrutNeX 2,那么我将消除您的输入和使用之间的空格。