更改ASCII文件中的值并将其保存为不同的名称 - Python

时间:2018-03-08 09:11:29

标签: python ascii

我有一个带有.dat扩展名的ASCII文件。该文件的数据如下所示,

MPOL3_VPROFILE
{
  ID="mpvp_1"  Cycle="(720)[deg]"  Lift="(9)[mm]"  Period="(240)[deg]"
  Phase="(0)[deg]"  TimingHeight="(1.0)[mm]"  RampTypeO="Const Velo"
  RampHO="(0.3)[mm]"  RampVO="(0.00625)[mm/deg]"  RampTypeC="auto"
  RampHC="(auto)[mm]"  RampVC="(auto)[mm/deg]"  bO="0.7"  cO="0.6"  dO="1.0"
  eO="1.5"  bC="auto"  cC="auto"  dC="auto"  eC="auto"  th1O="(14)[deg]"

现在我想用Python读取这个文件,然后将RampHO =“(0.3)[mm]”的值更改为RampHO =“(0.2)[mm]”,并将其保存为新的.dat文件。我怎么能这样做?

目前,我可以使用以下代码

成功读取文件和行
import sys
import re
import shutil
import os
import glob
import argparse
import copy
import fileinput

rampOpen = 'RampHO='
file = open('flatFollower_GenCam.dat','r')

#data = file.readlines()

#print (data)


for line in file:
    line.strip().split('/n')
    if rampOpen in line:
        print (line[4:22])

但是现在我不知道如何更改浮点值并将其保存为不同的名称。

1 个答案:

答案 0 :(得分:0)

首先,您应该在文本中发布代码而不是单独的图像。只需用四个空格缩进每一行,将其格式化为代码。

您可以逐行读取文件,更改要更改的行,然后写入输出。

with open(infile, 'r') as f_in, open(outfile, 'w') as f_out:
    for line in f_in:
        output_line = edit_line(line)
        f_out.write(output_line)

然后你只需编写一个执行字符串替换的函数。