以新格式写入文本文件
Writing a text file in new format
我有一个这样的文本文件:
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};
有人知道我该怎么做吗?
谢谢!
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()
编辑:现在编码有点硬,因为值没有用空格分隔,但它工作正常。我想你可以用正则表达式改进它,我会看看。
我有一个这样的文本文件:
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};
有人知道我该怎么做吗?
谢谢!
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()
编辑:现在编码有点硬,因为值没有用空格分隔,但它工作正常。我想你可以用正则表达式改进它,我会看看。