Python txt文件中的只读第一列

Python txt文件中的只读第一列,python,Python,我有一个简单的txt文件,可能有6列和10000行。如何只读第一列并将其保存在某个数组中 我尝试的每一个解决方案都不起作用 我用八度音很简单 data = load("sample.txt") first_column = data(:,1) 编辑:我忘记了metion,我必须跳过一行行字符串。 我的文件是这样开始的: ib*ns平均E/mK平均Ek/mK平均Ep/mK步行者 -------- ------------ --- ------------ --- ------------

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

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

我用八度音很简单

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

ib*ns平均E/mK平均Ek/mK平均Ep/mK步行者 -------- ------------ --- ------------ --- ------------ --- --------
如果您有一个
CSV
文件,那么我建议使用

一般来说,解决方案如下:

DELIMITER = ' '
data = []
with open('test.txt') as fr:
  for line in fr:
    first_col = line.split('{}'.format(DELIMITER))[0]
    data.append(first_col)
lines = csv.reader(open('test.txt', 'rb'), delimiter=DELIMITER)
您可以用所需的任何内容(空格、制表符等)替换分隔符

或者,正如@cricket_007所说,使用Python csv模块。比如:

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

如果列之间的分隔符是选项卡,则以下代码有效。否则,调整分离器的位置

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

请注意,尽管read_csv声称它可以读取csv,但它可以读取具有一致分隔符的任何文本文件。内置的
csv
模块提供以下功能:

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

这段代码根据要求将第一列提取到列表中。

Pandas library将是最接近Octave/Matlab的替代方法。这些列是如何分隔的?不是Python,但速度非常快:
cut-d,-f1
我忘了提到,我得到了前两行,其中有一些文本,我将不得不跳过它。然后,根据分隔符和字段类型的不同,导入csv模块时,只需在用tab分隔的列和行中输入整数就更安全了