[英]Reading in file contents separated by two lines into a list
我有一个包含以下内容的文本文件:
5
1 2 3 4 5
我想将内容读入python列表中。 我面临的问题是我想忽略文件第一行中的数字5。 数字5表示其下的元素数为5。相反,我只想将1,2,3,4,5附加到列表中。
[1,2,3,4,5]
我尝试了这个:
file = open('text.txt','r')
textfile = file
lst = []
for line in textfile:
line = line.strip().split(',')
line[1] = int(line[1]) #convert 1,2,3,4,5 into integers
lst.append(line[1])
print(lst)
我得到的错误是“索引超出范围”。
在循环之前添加next(textfile)
行。 它将丢弃文件的第一行。
接下来,您不会将行转换为内部编号。 您只需转换第二个元素line[1]
。 正确的转换方法是:
lst = [int(i) for i in line.split()]
要么
lst = list(map(int, line.split()))
总而言之,您的“完美”程序如下所示:
with open('text.txt') as infile:
next(infile)
for line in infile:
lst = [int(i) for i in line.split()]
print(lst)
只是想对@DyZ答案添加一个较小的更正,因为如果我理解正确,那么您想列出[1,2,3,4,5]
而不是['1,2,3,4,5']
with open('text.txt') as infile:
next(infile)
for line in infile:
lst = [int(i) for i in line.split()]
print(lst)
如果将line.split(',')
与int
,则会导致ValueError - invalid literal for int()
文本文件:
5
1 2 3 4 5
3 4 5 6 7
编码:
file = open('C:\\Users\\lenovo\\Desktop\\text.txt','r')
for line in file.readlines()[1:3]:
lst=[int(i) for i in line.strip().split()]
print(lst)
输出:
[1, 2, 3, 4, 5]
[3, 4, 5, 6, 7]
我英语不好,无法用英语解释,希望你能理解( ^ __ ^ )
您可以尝试以下方法:
with open('file','r') as f:
for line_no,line in enumerate(f):
if line_no%2==0:
pass
else:
print([int(int_) for int_ in line if int_.strip()!=''])
输出:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.