只读一个文件中的一行并将其拆分为Python

时间:2014-06-05 15:22:43

标签: 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.split(' ')
print line_i

出:

['h3', '', '', '', 'p1', '', '', 'p2', 'p3', 'p4', '', '', '', 'p5\n']

2)

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>

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

使用split()时,将参数留空意味着将删除连续的空格:

>>> line = "h3    p1   p2 p3 p4    p5"
>>> line.split()
['h3', 'p1', 'p2', 'p3', 'p4', 'p5']

来自文档:

  

如果未指定sep或为None,则使用不同的拆分算法   applied:连续空格的运行被视为单个   分隔符,结果将在开始时不包含空字符串   或者如果字符串具有前导或尾随空格则结束。所以,   拆分空字符串或只包含空格的字符串   使用无分隔符返回[]。