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

Splitting a text file into a list of lists

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

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附在他们身上。 您有什么想法可以帮助我实现这个目标吗?

我猜您的文件是制表符分隔的,而不是 space 分隔的?请尝试以下操作:

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)
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:]