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