更改特定行中的特定值(例如行号:57)并使用python

时间:2016-03-09 08:04:40

标签: python

import fileinput
import sys
def replaceAll(file,searchExp,replaceExp):
    i=1
    for line in fileinput.input(file, inplace=1):        
        if i==57:
            if searchExp in line:
                line = line.replace(searchExp,replaceExp)
            sys.stdout.write(line)
        i+=1
replaceAll("5MW_Platform_karbarge.DAT","22.0","23.0")

此代码正在运行,问题是执行后文件中的其余行都丢失了。任何人都可以建议修改,除了第57行,文件的其余部分不受干扰?非常感谢。

1 个答案:

答案 0 :(得分:1)

你的问题是你只需将第57行写回文件,只需从if i==57中移出sys.stdout.write,这样每一行都会写入,但只有57行被替换。

这应该有效

import fileinput
import sys
def replaceAll(file,searchExp,replaceExp):
    i=1
    for line in fileinput.input(file, inplace=1):        
        if i==57:
            if searchExp in line:
                line = line.replace(searchExp,replaceExp)
        sys.stdout.write(line)
        i+=1
replaceAll("5MW_Platform_karbarge.DAT","22.0","23.0")