将文本文件拆分为列表列表
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:]
我目前正在尝试将 .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:]