如何在python中将文本的某一部分从一个文件复制到另一个文件

要在此示例中提取文本的某个部分,我想从 d 提取到 f


input.txt 包含:


a

d

c

b

e

f

g

a

a

output.txt 应该包含从 d 到 f 但这个程序从 d 复制到 input.txt 文件的最后一行


f = open('input.txt')

f1 = open('output.txt', 'a')


intermediate_variable=False


for line in f:


    if 'd' in line:

        intermediate_variable=True

        if intermediate_variable==True:

            f1.write(line)


f1.close()

f.close()


至尊宝的传说
浏览 413回答 3
3回答

明月笑刀无情

我认为应该这样做:contents = open('input.txt').read()f1.write(contents[contents.index("d"):contents.index("f")])

慕侠2389804

有更方便的方式来读写文件,这个版本使用了一个生成器和'with'关键字(上下文管理器),它会自动为你关闭文件。生成器(带有 'yield' 的函数很好,因为它们一次给你一行文件,尽管你必须将它们的输出包装在 try/except 块中)def reader(filename):    with open(filename, 'r') as fin:        for line in fin:            yield linedef writer(filename, data):    with open(filename, 'w') as fout:  #change 'w' to 'a' to append ('w' overwrites)        fout.write(data)if __name__ == "__main__":    a = reader("input.txt")    while True:        try:            temp = next(a)            if 'd' in temp:                #this version of above answer captures the 'f' as well                writer("output.txt", temp[temp.index('d'):temp.index('f') + 1])        except StopIteration:            break

米脂

直截了当:### load all the data at once, fine for small files:with open('input.txt', 'r') as f:    content = f.read().splitlines() ## use f.readlines() to have the newline chars included### slice what you need from content:selection = content[content.index("d"):content.index("f")]## use content.index("f")+1 to include "f" in the output.### write selection to output:with open('output.txt', 'a') as f:    f.write('\n'.join(selection))    ## or:    # for line in selection:        # f.write(line + '\n')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python