我是小组的新手,也是python的新手。我有一个非常特定类型的输入文件,我正在使用。它是一个带有一个标题行文本的文本文件。此外,还有一列文字会让事情变得更加烦人。我想要做的是读取此文件,然后对数字列(如average,stdev等)执行操作......但是读取文件并解析出文本列会给我带来麻烦。
我玩了许多不同的方法并且接近了,但我想我会在这里联系小组。如果这是matlab我几小时前已经用过了。截至目前,如果我使用固定宽度来定义我的列,我认为它会起作用,但我认为可能有更有效的方式来读取行并正确地忽略字符串。
这是文件格式。如您所见,第一行是标题...因此可以忽略。 第1列包含文字。
....我想我明白了。我的代码可能很粗糙,但现在可以使用了:
CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}
#Specifcy number of headerlines
headerlines = 1
#set initial index to 0
i = 0
#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
for row in file:
if i > (headerlines - 1):
rowvars = row.split()
for i in range(2,len(rowvars)):
#print(rowvars[i]) #JUST A CHECK/DEBUG LINE
loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
i = i+1
答案 0 :(得分:0)
CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}
#Specifcy number of headerlines
headerlines = 1
#set initial index to 0
i = 0
#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
for row in file:
if i > (headerlines - 1):
rowvars = row.split()
for i in range(2,len(rowvars)):
#print(rowvars[i]) #JUST A CHECK/DEBUG LINE
loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
i = i+1