Python 3:从.txt文件中提取数据?

时间:2012-12-04 21:41:51

标签: python python-3.x

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

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

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

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

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

编辑:注意,文本文件已经存在。我正在处理的程序需要读取文本文件,其文件格式按我列出的方式格式化。

2 个答案:

答案 0 :(得分:5)

您可以在空格上拆分每一行:

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

names, firstnums, secondnums = zip(*rows)

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

答案 1 :(得分: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