我正在使用。 txt文件。它具有100行和5列。我需要将其分为五个长度为100的向量,每列一个。我正在尝试遵循此规则:Reading specific columns from a text file in python。
但是,当我将其实现为:
token = open('token_data.txt','r')
linestoken=token.readlines()
resulttoken=[]
for x in linestoken:
resulttoken.append(x.split(' ')[1])
token.close()
我不知道这个存储得很热。如果我写print('resulttoken')
,屏幕上就会出现注释。
有人可以告诉我我在做什么错吗?
答案 0 :(得分:1)
x.split(' ')
没什么用,因为文本文件的各列用多个空格隔开。使用x.split()
忽略空格:
token = open('token_data.txt','r')
linestoken=token.readlines()
tokens_column_number = 1
resulttoken=[]
for x in linestoken:
resulttoken.append(x.split()[tokens_column_number])
token.close()
print(resulttoken)
答案 1 :(得分:1)
好吧,该文件看起来像是按表而不是空间进行拆分,因此请尝试以下操作:
token = open('token_data.txt','r')
linestoken=token.readlines()
tokens_column_number = 1 resulttoken=[] for x in linestoken:
resulttoken.append(x.split('\t'))
token.close()
print(resulttoken)
答案 2 :(得分:0)
您需要一个包含五个不同列表的列表,然后依次追加到每个列表中。
columns = [[]] * 5
with open('token_data.txt','r') as token:
for line in token:
for field, value in enumerate(line.split()):
columns[field].append(value)
现在,您将在columns[0][0]
的第一行找到第一个值,在columns[1][0]
的第一行找到第二个值,在columns[0][1]
的第二行找到第一个值,等
要显示变量的值,请不要在变量两边加上引号。引号创建文字字符串。
print(columns[0][0])
打印columns[0][0]
的值,而
print('columns[0][0]')
仅打印文字文本“ columns [0] [0]”。
答案 3 :(得分:0)
您可以使用data_py包以FORTRAN样式读取按列的数据。 使用
安装此软件包pip install data-py
用法示例
from data_py import datafile
NoOfLines=0
lineNumber=2 # Line number to read (Excluding lines starting with '#')
df1=datafile("C:/Folder/SubFolder/data-file-name.txt")
df1.separator="," # No need to specify if separator is space(" ") and for 'tab' separated values use '\t'
NoOfLines=df1.lines # Total number of lines in the data file (Excluding lines starting with '#')
[Col1,Col2,Col3,Col4,Col5]=["","","","",""] # Initial values
[Col1,Col2,Col3,Col4,Col5]=df1.read([Col1,Col2,Col3,Col4,Col5)],lineNumber)
print(Col1,Col2,Col3,Col4,Col5) # In str format
有关详细信息,请访问链接https://www.respt.in/p/python-package-datapy.html