所以我有这样一个代码:
disfile = open('filename.txt')
for line in disfile:
list = line.split()
id = list[4]
if id == 'sequence':
name = list[0]
Sequence = list[5]
elif id == 'disorder':
Disorder = list[5]
print name, ' ', 'Sequence:',' ', Sequence,' ', 'Disorder:',' ', Disorder
然后所有的数据和序列都在python编辑器或IDLE中打印出来。但我想生成一个包含所有已打印内容的文件。谁能帮帮我吗!在
所以我的文件是这样的:
101M : A : sequence MVLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRVKHLKTEAEMKASEDLKKHGVTVLTALGAILKKKGHHEAELKPLAQSHATKHKIPIKYLEFISEAIIHVLHSRHPGNFGADAQGAMNKALELFRKDIAAKYKELGYQG 101M : A : secstr HHHHHHHHHHHHHHGGGHHHHHHHHHHHHHHH GGGGGG TTTTT SHHHHHH HHHHHHHHHHHHHHHHHHTTTT HHHHHHHHHHHHHTS HHHHHHHHHHHHHHHHHH GGG SHHHHHHHHHHHHHHHHHHHHHHHHTT
101M : A : disorder ---------------------------------------------------------------------------------------------------------------------------------------------------------- 102L : A : sequence MNIFEMLRIDEGLRLKIYKDTEGYYTIGIGHLLTKSPSLNAAAKSELDKAIGRNTNGVITKDEAEKLFNQDVDAAVRGILRNAKLKPVYDSLDAVRRAALINMVFQMGETGVAGFTNSLRMLQQKRWDEAAVNLAKSRWYNQTPNRAKRVITTFRTGTWDAYKNL 102L : A : secstr HHHHHHHHH EEEEEE TTS EEEETTEEEESSS TTTHHHHHHHHHHTS TTB HHHHHHHHHHHHHHHHHHHHH TTHHHHHHHS HHHHHHHHHHHHHHHHHHHHT HHHHHHHHTT HHHHHHHHHSSHHHHHSHHHHHHHHHHHHHSSSGGG
102L : A : disorder -------------------------------------------------------------------------------------------------------------------------------------------------------------------XX 102M : A : sequence MVLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKTEAEMKASEDLKKAGVTVLTALGAILKKKGHHEAELKPLAQSHATKHKIPIKYLEFISEAIIHVLHSRHPGNFGADAQGAMNKALELFRKDIAAKYKELGYQG 102M : A : secstr HHHHHHHHHHHHHHGGGHHHHHHHHHHHHHHH GGGGGG TTTTT SHHHHHH HHHHHHHHHHHHHHHHHHTTTT HHHHHHHHHHHHHTS HHHHHHHHHHHHHHHHHH TTT HHHHHHHHHHHHHHHHHHHHHHHHHT
102M : A : disorder ---------------------------------------------------------------------------------------------------------------------------------------------------------- 103L : A : sequence MNIFEMLRIDEGLRLKIYKDTEGYYTIGIGHLLTKSPSLNSLDAAKSELDKAIGRNTNGVITKDEAEKLFNQDVDAAVRGILRNAKLKPVYDSLDAVRRAALINMVFQMGETGVAGFTNSLRMLQQKRWDEAAVNLAKSRWYNQTPNRAKRVITTFRTGTWDAYKNL 103L : A : secstr HHHHHHHHH EEEEEE TTS EEEETTEE HHHHHHHHHHHHTS TTB HHHHHHHHHHHHHHHHHHHHH TTTHHHHHHS HHHHHHHHHHHHHHHHHHHHT HHHHHHHHTT HHHHHHHHHSSHHHHHSHHHHHHHHHHHHHSSSGGG
103L : A : disorder ----------------------------------XXXXXX-----------------------------------------------------------------------------------------------------------------------------XX
在我添加代码之后:
导入系统 系统标准输出=open('outputfile','w') 打印“test”#“test”将在输出文件中
因此,我的代码变成:
^{pr2}$它确实生成了一个文件,但是只有最后一个序列出现在文件中,发生了什么?在
它只保存最后一个序列,因为每次迭代都会再次打开文件并覆盖。你应该在循环之前打开它。在
但我建议使用书写或打印“V形”格式。i、 电子邮箱:
您可以写入使用
write()
打开的文件,也可以重定向stdout
,这样通过print
的所有输出都将转到一个文件:您也可以使用
>
作为注释中提到的Blender导入文件,但是这只适用于使用shell而不是Python编辑器或IDLE的情况。在替换
stdout
不是生产代码中应该做的事情,因为它是全局替换的,即代码外部的其他函数的输出也将在文件中结束。如果确实要替换原始文件sys.stdout
,则可能需要保存它。在相关问题 更多 >
编程相关推荐