以新格式编写文本文件

时间:2018-06-27 20:06:52

标签: text-files file-writing

我有一个像这样的文本文件:

   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};

有人知道我该怎么做吗?

谢谢!

1 个答案:

答案 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()

编辑:现在值有点用硬编码了,因为值之间没有空格,但是可以正常工作。我想您可以使用正则表达式来改善它,我来看一下。