从文件中只读取一行并在Python中拆分它

从文件中只读取一行并在Python中拆分它,python,file-io,split,Python,File Io,Split,我有一个ASCII文件,格式如下: a = 20.0 b = 30.0 c = 30.0 h3 p1 p2 p3 p4 p5 000 000 000 22 00 000 ... . . . 我只想读第4行来得到名字。嗯,我试过: 1打开行,然后拆分: # Reading 'data.txt' line = open('data.txt', 'r') line_i = line.readlines()[3] line.close() line_i = line_i.s

我有一个ASCII文件,格式如下:

a = 20.0
b = 30.0
c = 30.0
h3    p1   p2 p3 p4    p5
000  000  000 22 00    000
...
.
.
.
我只想读第4行来得到名字。嗯,我试过:

1打开行,然后拆分:

# Reading 'data.txt'
line = open('data.txt', 'r')
line_i = line.readlines()[3]
line.close()

line_i = line_i.split(' ')
print line_i
输出:

二,

输出:

如何做到这一点?

使用split时,将参数留空表示将删除连续的空白:

>>> line = "h3    p1   p2 p3 p4    p5"
>>> line.split()
['h3', 'p1', 'p2', 'p3', 'p4', 'p5']
从文档中:

如果未指定sep或sep为None,则使用不同的拆分算法 应用:连续空格的运行被视为单个空格 分隔符,并且结果在开始处不包含空字符串 如果字符串有前导或尾随空格,则为end。因此 拆分空字符串或仅包含空格的字符串 使用None分隔符返回[]


我以前应该试过,避免负面打击。感谢您对打开“data.txt”、“r”作为f:result=f.readlines[3]所做的有价值的额外解释。使用with语句打开文件时,您无需担心关闭文件。剩下的是一行,我想问题很清楚。这是事实,我们得到了一个答案。而且,版本有助于提高它
import csv
line = open('data.txt', 'r')
line_i = line.readlines()[3]
line.close()

line_i = csv.reader(line_i,delimiter=' ')
print line_i
<_csv.reader object at 0x205e7c0>
>>> line = "h3    p1   p2 p3 p4    p5"
>>> line.split()
['h3', 'p1', 'p2', 'p3', 'p4', 'p5']