我有一个名为'scores.txt'的示例文件,其中包含以下值:
10,0,6,3,7,4
我希望能够以某种方式从该行中获取每个值,并将其附加到列表中,使其变为sampleList = [10,0,6,3,7,4]
。
我已尝试使用以下代码
执行此操作score_list = []
opener = open('scores.txt','r')
for i in opener:
score_list.append(i)
print (score_list)
部分有效,但由于某种原因,它没有正确地执行。它只是将所有值都粘贴到一个索引而不是单独的索引中。如何才能将所有值放入各自的索引中?
答案 0 :(得分:3)
您有CSV数据(以逗号分隔)。最简单的方法是使用csv
module:
import csv
all_values = []
with open('scores.txt', newline='') as infile:
reader = csv.reader(infile)
for row in reader:
all_values.extend(row)
否则,拆分值。您读取的每一行都是一个字符串,其中包含数字之间的','
字符:
all_values = []
with open('scores.txt', newline='') as infile:
for line in infile:
all_values.extend(line.strip().split(','))
无论哪种方式,all_values
都会以字符串列表结束。如果您的所有值都只包含数字,则可以将它们转换为整数:
all_values.extend(map(int, row))
或
all_values.extend(map(int, line.strip().split(',')))
答案 1 :(得分:2)
如果不使用任何外部包,这是一种有效的方法:
with open('tmp.txt','r') as f:
score_list = f.readline().rstrip().split(",")
# Convert to list of int
score_list = [int(v) for v in score_list]
print score_list
答案 2 :(得分:2)
只需在每行的逗号上使用split
,然后将返回的列表添加到score_list
,如下所示:
opener = open('scores.txt','r')
score_list = []
for line in opener:
score_list.extend(map(int,line.rstrip().split(',')))
print( score_list )