将文本文件拆分为列表列表

时间:2015-03-05 21:54:40

标签: python arrays csv text split

我目前正在尝试将.txt文件分解为列表列表以便于排序。但是,我似乎无法使我的分裂功能起作用。 Text文件看起来像这样

First Name        Second Name        Age        Class Room Number        GPA
Louis             Darter             16         1                        3.5
Emma              Handzo             15         1                        3.6
Jing              Luo                25         2                        2.0
Charles           Xavier             13         2                        3.0
Scott             Summer             10         1                        3.1

以下是我目前正在尝试做的事情:

import csv
reader = csv.reader(open('ARCC_Challenge1.txt', 'rb'), delimiter=' ')
split_text = []
for line in reader:
     split_text.append(line[1:-1])

print split_text

理想情况下,我希望以类似[[First Name 1, Last Name 1, Age 1, class room number 1, GPA 1],[First Name 2, Last Name 2, Age 2, class room number 2, GPA 2]...]的格式获取输出。当前代码生成一个数组,但是它的空白点和许多值似乎都附加了\t他们。 你可以给我什么想法来实现这个目标?

2 个答案:

答案 0 :(得分:4)

我猜你的文件是以制表符分隔的,而不是以空格分隔的?请尝试以下方法:

import csv

with open('ARCC_Challenge1.txt', 'rb') as fin:
    csvin = csv.reader(fin, delimiter='\t') #\t = tab delimited
    next(csvin, '') # skip header
    split_text = list(csvin)

答案 1 :(得分:3)

print map(str.split,open('ARCC_Challenge1.txt', 'rb'))

我认为应该基本上做你想做的事情

根据python的版本

,您可能需要在结果上调用list

或者如果你更像是一个列表理解人

print [line.split() for line in open('ARCC_Challenge1.txt', 'rb')]

你保存你的行而不是打印它们

lines = ...
#then you can skip some with normal slices
print lines[3:]