Python 将两行分隔的文件内容读入列表

Python 将两行分隔的文件内容读入列表,python,Python,我有一个文本文件,其中包含: 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] =

我有一个文本文件,其中包含:

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)
。它将丢弃文件中的第一行

接下来,您不会将该行转换为intereg编号。只转换第二个元素,
行[1]
。正确的转换方法是:

lst = [int(i) for i in line.split()]

总而言之,您的“完美”计划如下所示:

with open('text.txt') as infile:
    next(infile)
    for line in infile:
        lst = [int(i) for i in line.split()]
        print(lst)
在循环之前添加行
next(textfile)
。它将丢弃文件中的第一行

接下来,您不会将该行转换为intereg编号。只转换第二个元素,
行[1]
。正确的转换方法是:

lst = [int(i) for i in 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 answer中添加一个小的修正 如果我理解正确,您希望列表
[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-int()的文本无效

只需对@DyZ answer添加一个小的更正即可 如果我理解正确,您希望列表
[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-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]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
我英语不好,不能用英语解释,希望你能理解(^ _ ^)

文本文件:

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]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

我英语不好,不能用英语解释,希望你能理解(^ ^)

你可以试试这个方法:

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]
[3, 4, 5, 6, 7]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

您可以尝试以下方法:

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]
[3, 4, 5, 6, 7]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

next(textfile)
将读取文件的一行,实际上忽略它。
next(textfile)
将读取文件的一行,实际上忽略它。谢谢你的建议,我更正了我的答案。谢谢你的建议,我更正了我的答案。谢谢你的建议,我更正了我的答案@VikasDamodar谢谢你的建议,我更正了我的答案@VikasDamodar