Python 如何在打印前将文本文件数据行块与类别匹配?
我有一个txt文件,其中包含x个不同房产清单的数据。在my program.py中,txt文件中的每一行都通过readlines()排序到一个列表中,即每个列表元素都包含txt文件中的一行数据,让我们调用列表“属性”。对于txt文件中的每个属性,例如有4行数据: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,然后是空行,然后是房产二的新数据,价格
在文本文件中: 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,那么我将消除您的输入和使用之间的空格。