我试图从Generator not working to split string by particular identifier . Python 2实现这段代码,但我发现其中有两个bug似乎无法修复
Input:
@m120204
CTCT
+
~@@!
@this_one_has_an_at_sign
CTCTCT
+
@jfik9
@thisoneisempty
+
#empty line after + and then empty line to end file (2 empty lines)
这两个错误是: (i) 当有@在“+”行之后开始代码行时,例如第二个条目(@this\u one\u有一个\u at\u符号) (ii)@identification_行之后的行或“+”行之后的行是空的,如在第3个条目中(@thisoneisempty)
我希望输出与我引用的帖子相同:
yield (name, body, extra)
在@this\u one\u有一个\u at\u符号的情况下
name= this_one_has_an_at_sign
body= CTCTCT
quality= @jfik9
在@thisoneisempty的情况下
name= thisoneisempty
body= ''
quality= ''
我尝试使用标志,但我似乎无法解决这个问题。我知道如何不使用发电机,但我将使用大文件,所以我不想走这条路。我现在的代码是:
def organize(input_file):
name = None
body = ''
extra = ''
for line in input_file:
line = line.strip()
if line.startswith('@'):
if name:
body, extra = body.split('+',1)
yield name, body, extra
body = ''
name = line
else:
body = body + line
body, extra = body.split('+',1)
yield name, body, extra
for line in organize(file_path):
print line
目前没有回答
相关问题 更多 >
编程相关推荐