更改特定行中的特定值(例如行号:57)并使用python保存具有相同文件名的文件

2024-07-05 08:36:36 发布

您现在位置: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行外,文件的其余部分不受干扰?非常感谢


Tags: 文件inimportforinputifdefsys
1条回答
网友
1楼 · 发布于 2024-07-05 08:36:36

您的问题是您只将第57行写回文件,只需将sys.stdout.write移出if i==57即可写入每一行,但只替换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")

相关问题 更多 >