在IDLE中运行模块时不写入文本文件

时间:2017-01-09 02:32:51

标签: python

我正在尝试学习Python用于某些生物信息学/生物学相关类型的研究。我没有Java之外的许多编程经验 - 这是非常有限的。我目前正在尝试使用python创建一个文本文件并在其中写入内容。我能够做到这一点,但是当我选择"运行模块"在IDLE中,文本文件已创建,但没有任何文本。但是,当我实际在IDLE之外运行文件时,文件是使用文本创建的。这是什么原因?

编辑:

这里是代码(它是基于我正在使用的教科书中的练习):

genomic_dna_file = open("genomic_dna.txt")
genomic_dna = genomic_dna_file.read()

exon1 = genomic_dna[0:63]
exon2 = genomic_dna[90:]
coding = exon1 + exon2
noncoding = genomic_dna[63:90]


coding_file = open('coding.txt', 'w')
noncoding_file = open('noncoding.txt', 'w')
coding_file.write(coding)
noncoding_file.write(noncoding)

1 个答案:

答案 0 :(得分:0)

问题可能是由于没有关闭python代码中的文件。由于文件在IDLE中打开,因此看不到文件中的更改。您可以使用 close() 方法关闭文件。

genomic_dna_file = open("genomic_dna.txt")
genomic_dna = genomic_dna_file.read()
genomic_dna_file.close()

exon1 = genomic_dna[0:63]
exon2 = genomic_dna[90:]
coding = exon1 + exon2
noncoding = genomic_dna[63:90]


coding_file = open('coding.txt', 'w')
noncoding_file = open('noncoding.txt', 'w')
coding_file.write(coding)
noncoding_file.write(noncoding)
coding_file.close()
noncoding_file.close()

通常,在不需要资源时始终关闭和释放资源是一种很好的做法。