我对python真的很陌生,现在我在做一个学生项目时遇到了一些问题。基本上我尝试从格式化为列的文本文件中读取数据。我将数据存储在列表列表中,并对数据进行排序和操作,然后再次将它们写入文件。我的问题是将写入的数据对齐在适当的列中。我发现了一些方法,例如
"%i, %f, %e" % (1000, 1000, 1000)
但我不知道会有多少列。所以我想知道是否有办法将所有列设置为固定宽度。
这是输入数据的样子:
2 232.248E-09 74.6825 2.5 5.00008 499.482
5 10. 74.6825 2.5 -16.4304 -12.3
这就是我将数据存储在列表列表中的方式:
filename = getInput('MyPath', workdir)
lines = []
f = open(filename, 'r')
while 1:
line = f.readline()
if line == '':
break
splitted = line.split()
lines.append(splitted)
f.close()
为了写入数据,我首先将列表列表的所有行元素放入一个字符串中,元素之间有一个固定的空闲空间。但相反,我需要一个固定的总空间,包括元素。但我也不知道文件中的列数。
for k in xrange(len(lines)):
stringlist=""
for i in lines[k]:
stringlist = stringlist+str(i)+' '
lines[k] = stringlist+'\n'
f = open(workdir2, 'w')
for i in range(len(lines)):
f.write(lines[i])
f.close()
这段代码基本上可以工作,但遗憾的是输出格式不正确。
非常感谢您在此问题上提供的任何帮助!