我有一个以</END>
结尾的文件,该文件在</END>
之后可能包含空白行。我不在乎空白行。但是最后一个非空白词是</END>
。我需要在</END>
之前添加几行。我已经用fileinput
完成了
for each_line in fileinput.input("testme",inplace=True):
if each_line.strip() == '</END>':
print "\nAdding ^.*"+source_resource+".*$ \\"
print destination+" [R="+http_code+",L]"
print each_line,
可以请一些专家建议使用
seek
如何实现。我相信seek
对于光标放置非常方便。 最佳答案
您有两种可能的方法,一种方法是使用就地写入,另一种方法是创建文件副本。
第二种方法很容易实现:
with open(src_path, "r") as in_f, open(dest_path, "w") as out_f:
for line in in_f:
if line == "</END>":
out_f.write("whatever you want")
out_f.write(line)
out_f.write('\n')
对于第一种方法,我们需要检测终点线并移回其起点:
last = 0
with open(src_path, "r+") as f:
for line in f:
if line == "</END>":
f.seek(last)
f.write("whatever you want"
f.write(line) # rewrite the line
f.write('\n')
last = f.tell() # This will give us the end of the last line
我确实亲自编写了这段代码,所以可能会有一些错误,但是您明白了。
关于python - python用seek替换fileinput,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17063872/