Python将字符串中的所有行复制到另一个文本文件中

时间:2016-05-13 06:31:01

标签: python io text-files deque

我已经堆叠在我的代码中,我希望从这段代码打开已经存在大文本(inputt)的文件,读取它并且如果行包含“***”然后在它之前复制行并粘贴到另一个文件中( outputt)。

我的输入文件例如如下所示:

This is the house

this is the flower

this is a tree

'***'

This is a car

this is an apple

this is the nature

'***'

所以我的目标是在“***”之前复制所有行并将其粘贴到另一个文件中。所以它可以分成两个文件。这是我的堆积代码:

def transform(inputt, outputt):
    with open(inputt) as f, open(outputt, "w") as f1:
        count = 0
        for line in f:
            if "***" in line:
                f.writelines(deque(f1, count))
            else:
                count = count + 1

1 个答案:

答案 0 :(得分:0)

你想要完成的事情并不是很清楚。鉴于您的描述和示例输入文件,听起来您希望将以下内容写入outputt:

This is the house

this is the flower

this is a tree

这是对的吗?如果是这样的话:

def transform(inputt, outputt):
    with open(inputt) as f, open(outputt, "w") as f1:
        f1.write(f.read().split("***")[0])

此代码存在许多缺陷,但如果没有更好的描述,很难真正了解您所追求的内容。

编辑: 鉴于评论中的回应:

def transform(inputt, outputt_base):
    with open(inputt, "r") as f:
        for count, block in enumerate(f.read().split("***")):
            outputt_name = outputt_base + "_{0}.txt".format(count)
            with open(outputt_name, "w") as f1:
                f1.write(block)

根据您的示例输入文件,这将写入两个输出文件: (假设outputt_base只是字符串output

第一个档案:output_1.txt

This is the house

this is the flower

this is a tree

第二档:output_2.txt

This is a car

this is an apple

this is the nature