Python 将多个列表合并到一个文本文件中

Python 将多个列表合并到一个文本文件中,python,python-3.x,fastq,Python,Python 3.x,Fastq,我对编码是新手,在尝试制作自己的fastq遮罩时遇到了麻烦。第一个模块应该使用+来修剪行,将序列头(以>)修改为行号,同时保留序列行和质量行(分别是A、G、C、T行和Unicode分数) 现在回答我的问题。我已经运行了这个,没有出现错误,但是目标文件是空的。我想知道我做错了什么。。。这是我处理列表的方式还是缺少。加入?如果这是重复的,我很抱歉。只是我不知道这里的错误是什么。还有,重要的一点。。。这不是家庭作业,我只是需要一个面具来工作。。。非常感谢您提供的任何帮助,欢迎您提及对代码的改进。谢谢

我对编码是新手,在尝试制作自己的fastq遮罩时遇到了麻烦。第一个模块应该使用+来修剪行,将序列头(以>)修改为行号,同时保留序列行和质量行(分别是A、G、C、T行和Unicode分数)

现在回答我的问题。我已经运行了这个,没有出现错误,但是目标文件是空的。我想知道我做错了什么。。。这是我处理列表的方式还是缺少。加入?如果这是重复的,我很抱歉。只是我不知道这里的错误是什么。还有,重要的一点。。。这不是家庭作业,我只是需要一个面具来工作。。。非常感谢您提供的任何帮助,欢迎您提及对代码的改进。谢谢

注(fastq格式):


编辑:仍然无法获取任何内容,但正在进行操作。

您的问题在于对返回语句的理解
return x
表示停止执行当前函数,并将
x
返回给调用它的人。在代码中,您有:

return sanger
return sequence
return identifier
return plus
当第一个执行(
return sanger
)时,函数停止执行,并返回
sanger
。第二个到第四个返回语句永远不会得到计算,最后的I/O语句也不会得到计算。如果您真的对返回所有这些值感兴趣,请将其移到文件I/O之后,并将其中四个值打包为元组返回

f.write("'%s'\n '%s'\n '%s'" %(identifier, sequence, sanger))
f.close()
return (sanger,sequence,identifier,plus)
这至少会在文件中获得一些输出。不管输出是否符合您想要的格式,我真的不能说

编辑:
刚刚注意到您使用的是
/n
,可能需要
\n
,所以我在这里更改了答案。

除了@Brian解决的问题之外,您还有各种各样的错误。我猜您的
if
else
测试正在尝试检查
行的第一个字符
?你会和我一起做的

if line[0] == '@':
    etc.

您可能很快需要编写更多脚本,因此我建议您完成,以便能够掌握基本知识。这是值得你花时间的。

我认为你真的应该看看。我不确定你想在你的
if
else
语句中测试什么,但你拥有的代码肯定不会测试它。我认为像
if'@'=[0]这样的行:
本来是打算在
if行[0]中测试的=='@':
但我不确定。@布赖恩谢谢你的反馈。谢谢你的元组想法。。。而且,我仍然没有收到任何输出。
f.write("'%s'\n '%s'\n '%s'" %(identifier, sequence, sanger))
f.close()
return (sanger,sequence,identifier,plus)
if line[0] == '@':
    etc.