使用Python中的分隔符来剪切中间部分

时间:2016-03-07 12:22:59

标签: python python-2.7 csv delimiter

我有一个用五个不同的列逗号分隔的文本文件,但我只想取回第一列和第四列。

当我使用split函数时,它只是拆分所有内容而我不知道如何获取它以便它只取第一列然后跳到第四列。

这是我尝试组织的数据示例:

11.332,2,2,-465,0.928621379033569

我希望从中获得11.332-465并忘记其余内容

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到。

您的问题标有csv。您可以使用csv模块解析CSV数据:

import csv

with open('file.csv') as f:
    for row in csv.reader(f):
        print(row[0])    # the first field
        print(row[3])    # the third field

对于您的样本数据,将打印:

11.332
-465

csv.reader()可能是最好的方法,但是,另一种方法是使用_的元组解包来表示忽略的字段:

line = '11.332,2,2,-465,0.928621379033569'
first, _, _, fourth, _ = line.split(',')
print(first)
print(fourth)
# 11.332
# -465

当然没有什么可以阻止你将所有字段绑定到变量,只需用有意义的变量名替换_

或者,您可以拆分整行,然后通过下标来删除所需的字段:

line = '11.332,2,2,-465,0.928621379033569'
data = '11.332,2,2,-465,0.928621379033569'.split(',')
print(data[0])
print(data[3])
# 11.332
# -465

或者您可以使用operator.itemgetter(与元组解包相结合):

from operator import itemgetter

fields = itemgetter(0, 3)
first, fourth = fields(line.split(','))
print first
print fourth
# 11.332
# -465

答案 1 :(得分:0)

我设法弄清楚了

for line in eda:
    print (line.split(',')[0])
    print (line.split(',')[3])

这让我得出了我需要的两个结果,而忘记了其余的结果