【发布时间】:2011-08-09 14:23:56
【问题描述】:
我正在尝试在 Python 3 中编写一个函数,它将所有以字符串 'halloween' 结尾的行写入文件。当我调用这个函数时,我只能得到一行写入输出文件(file_2.txt)。谁能指出我的问题在哪里?提前致谢。
def parser(reader_o, infile_object, outfile_object):
for line in reader_o:
if line.endswith('halloween'):
return(line)
with open("file_1.txt", "r") as file_input:
reader = file_input.readlines()
with open("file_2.txt", "w") as file_output:
file_output.write(parser(reader))
【问题讨论】:
-
不太确定,是不是因为你用的是return而不是write?
-
为什么不将输出传递给解析器方法并用 output_file.write(line) 替换 return(line) ?
-
@Bogdan 我认为这不是一个好主意。一种方法应该负责查找匹配项,另一种方法负责编写文件,如果您要拆分它。如果您要让函数进行编写,它应该只做所有事情,就像我的答案的生成器表达式版本一样。
标签: python python-3.x