我如何编写代码以从文件中读取第一行并将其作为字典的键值并以迭代方式继续读取下一个值并将它们作为它们落入文件中的特定键的值. 像例子:
项目质量成本地点
Ball 1 $12 TX
Umbrella 5 $35 NY
sweater 89 $100 LA
所以在这里,表示是我的文件。当我阅读时,我希望将字典创建为粗体字作为键,当我继续阅读下面的行时,我会让它们作为相应键中的多个值。
谢谢
请您参考如下方法:
看起来您正在描述一个带有空格分隔符的 csv 文件。这样的事情应该有效(from the Python help)。
>>> import csv
>>> spamReader = csv.reader(open('eggs.csv', 'rb'), delimiter=' ', quotechar='|')
>>> for row in spamReader:
... print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
事实上,csv.DictReader 会更好,以便将每一行作为一个字典,其中的键由第一行定义。
我假设在每组值之后插入一个换行符。
编辑:使用上面的例子,我们得到:
In [1]: import csv
In [2]: f = csv.DictReader(open('test.txt', 'r'), delimiter = ' ', skipinitialspace = True)
In [3]: for row in f: print row
{'Item': 'Ball', 'Cost': '$12', 'Quality': '1', 'Place': 'TX'}
{'Item': 'Umbrella', 'Cost': '$35', 'Quality': '5', 'Place': 'NY'}
{'Item': 'sweater', 'Cost': '$100', 'Quality': '89', 'Place': 'LA'}
需要将参数 skipinitialspace = True 传递给 DictReader 才能摆脱 多个 空格,而不会在每个空格中创建虚假条目行。
