我已经堆叠在我的代码中,我希望从这段代码打开已经存在大文本(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
答案 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