1

所以,我有这个文件,它的数据设置如下:

Bob 5 60
Carl 7 80
Rick 8 100
Santiago 7 30

我需要将每个部分分成三个不同的列表。一个用于名称,一个用于第一个数字,一个用于第二个数字。

但我真的不明白,我究竟是如何提取这些部分的?另外,假设我想用第一行创建一个元组,将每个不同的部分(名称、第一个数字和第二个数字)组成一个元组?

我只是不明白我是如何提取这些信息的。我刚刚学会了如何读写文本文件......所以我很无能为力。

编辑:作为说明,文本文件已经存在。我正在处理的程序需要读取文本文件,它的数据按照我列出的方式格式化。

4

2 回答 2

5

您可以在空白处拆分每一行:

with open(yourfile) as f:
    rows = [l.split() for l in f]

names, firstnums, secondnums = zip(*rows)

zip(*iterable)将 3 列重新排列为 3 个列表。

于 2012-12-04T21:49:32.813 回答
0

模块 Pickle 在这里不是很理想吗?Pickle 为 Python 提供了加载和保存需要在 Python 中“可用”的内容的功能,因此,pickle 可以加载它并为您提供您正在尝试的实际容器,而不是仅仅从文本文件中导入字符串并解析它跟...共事。

例子:

import pickle

myList = ["Bob", 1, 2]
listToBeSaved = pickle.dumps(myList) # write this data to your save file
#insert code where you work with the file and save it
#.........    
#upon needing to open and work with this file
listToBeLoaded = open(fileYouWroteTo)
listTranslated = pickle.loads(listToBeLoaded) # turns the loaded data back into a proper list
于 2012-12-04T22:02:42.470 回答