从txt文件中只读第一列

时间:2018-04-23 13:42:01

标签: python

我有简单的txt文件,可能有6列和10000行。我怎样才能只读取第一列并将其保存在某个数组中?

我尝试的每个解决方案都不起作用。

我很简单地用八度音阶管理它,

data = load("sample.txt") 
first_column = data(:,1)
编辑:我忘记了,我需要跳过一些字符串。 我的文件是这样开始的:

ib * ns平均E / mK平均Ek / mK平均Ep / mK步行者

-------- ------------ --- ------------ --- --------- --- --- --------

  2000   -89.4010789        736.581586       -825.982664          4988
  4000   -86.8499373        707.358765       -794.208703          4952
  6000   -87.3911178        680.584591       -767.975709          4968

3 个答案:

答案 0 :(得分:0)

如果您有CSV个文件,那么我建议您使用pandas

一般来说,解决方案类似于:

DELIMITER = ' '
data = []
with open('test.txt') as fr:
  for line in fr:
    first_col = line.split('{}'.format(DELIMITER))[0]
    data.append(first_col)

您可以将DELIMITER替换为您想要的任何内容(空格,制表符等)

或者,正如@ cricket_007所说,使用Python csv模块。类似的东西:

lines = csv.reader(open('test.txt', 'rb'), delimiter=DELIMITER)

答案 1 :(得分:0)

如果列之间的分隔符是制表符,则以下代码有效。否则调整为分隔符。

import pandas as pd
df = pd.read_csv('sample.txt', header=None, usecols=[1], sep='\t')

请注意,尽管read_csv声称它读取csv' s,它可以读取具有一致分隔符的任何文本文件

答案 2 :(得分:0)

内置csv模块提供此功能:

import csv
with open('data.dat', 'r') as csvfile:
     reader = csv.reader(csvfile, delimiter=' ')
     first_column = [ row[0] for row in reader ]

此代码根据请求将第一列提取到列表中。