我有简单的txt文件,可能有6列和10000行。我怎样才能只读取第一列并将其保存在某个数组中?
我尝试的每个解决方案都不起作用。
我很简单地用八度音阶管理它,
data = load("sample.txt")
first_column = data(:,1)
编辑:我忘记了,我需要跳过一些字符串。
我的文件是这样开始的:
2000 -89.4010789 736.581586 -825.982664 4988
4000 -86.8499373 707.358765 -794.208703 4952
6000 -87.3911178 680.584591 -767.975709 4968
答案 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 ]
此代码根据请求将第一列提取到列表中。