使用write命令用文件中的另一行替换一行

时间:2017-11-07 05:40:28

标签: python

f1=open(r"E:\f2.txt","r+")
lines = f1.readlines()
f1.seek(0)
#f1.truncate()
for line  in f1:
    if  'SN 07689630' in line:
        line=line.replace(line,"blank")
    f1.write(line)
    break

我一直在使用此代码,但它无效

1 个答案:

答案 0 :(得分:0)

使用break语句过早地退出for循环。我敢肯定,文字条目' SN 07689630'不在文件的第一行,并且不满足if语句的条件,然后立即退出for循环。取出break语句,看看会发生什么。我的猜测是它会附加一个新行,其中包含"空白"

一种解决方案是在写入模式下再次打开一个具有相同文件名的新文件指针,类似于:

f1=open("sample.txt","r")
lines = f1.readlines()

f1.close()
f1 = open("sample.txt","w")

for line  in lines:
    if  'SN 07689630' in line:
        line="blank\n"
    f1.write(line) 
相关问题