簡體   English   中英

只讀txt文件中的第一列

[英]Read only first column from txt file

我有可能有6列和10000行的簡單txt文件。 我如何只讀取第一列並將其保存在某個數組中?

我嘗試過的每個解決方案都沒有用。

我用八度很簡單地管理它,

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

如果您有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)

如果列之間的分隔符是制表符,則以下代碼有效。 否則請調整為任何分隔符。

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 ]

此代碼根據請求將第一列提取到列表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM