我有一个像这样的文本文件:
1 0.1278000E-01 0.000000 0.000000
259 0.1172645E-01-0.5057909E-02 0.000000
260 0.7262609E-02-0.1052830E-01 0.000000
它有4列和3行。最后一列中的数字始终为零。如果第三列中的数字不为零(行2,3),则此数字将附加到第二列中的数字。 我想在此文件中添加一些内容,并将其格式更改为:
Point(1) = {0.1174800E-01, 0, 0};
Point(259) = {0.1172645E-01, -0.5057909E-02, 0};
Point(260) = {0.7262609E-02, -0.1052830E-01, 0};
有人知道我该怎么做吗?
谢谢!
答案 0 :(得分:0)
Python 3.6中此问题的解决方案:
lines = [line.rstrip('\n') for line in open('input.txt')]
output = open('output.txt', 'w')
for line in lines:
line = line.split()
if len(line) == 3:
line[1], line[2] = line[1][:line[1].find("E") + 4],
line[1][line[1].find("E") + 4:]
output.write('Point({}) = {{{}, {}, 0}};\n'.format(line[0], line[1], line[2]
if float(line[2]) != 0 else '0'))
output.close()
编辑:现在值有点用硬编码了,因为值之间没有空格,但是可以正常工作。我想您可以使用正则表达式来改善它,我来看一下。