繁体   English   中英

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

[英]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]...]的格式获取输出。 [[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]...] Mycurrent代码产生的阵列,但其完全空白点和许多值似乎有\\t附着到它们。 您可能会给我实现这一目标的任何想法吗?

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

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'))

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

您可能需要根据结果调用list ,具体取决于python的版本

或者,如果您更喜欢列表理解者

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

您保存行而不是打印行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM