【发布时间】:2017-04-17 18:15:01
【问题描述】:
在下面给定的代码中:
with open("chr2_head25.gtf", 'r') as f,\
open('test_output.txt', 'w') as f2:
for lines in f:
if not lines.startswith('#'):
f2.write(lines)
f2.close()
我可以删除以# 开头的行并将输出写入一个新文件。但是,问题是 f2 i.e the output 正在控制台上打印,即使代码上的任何地方都没有打印语句。 为什么会这样?我试图找到解释,但找不到。该程序有效,但我不希望在屏幕上打印大量的data file (f2)。
谢谢,
输入文件:这里是名为chr2_head25.gtf的数据文件
#!genome-build v.1.0
#!genome-version JGI8X
#!genome-date 2008-12
#!genome-build-accession GCA_000004255.1
#!genebuild-last-updated 2008-12
2 jgi gene 171 1201 . - . gene_id "scaffold_200001.1"; gene_version "1"; gene_source "jgi"; gene_biotype "protein_coding";
2 jgi transcript 171 1201 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi exon 916 1201 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; exon_id "scaffold_200001.1.exon1"; exon_version "1";
2 jgi CDS 916 1181 . - 0 gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; protein_id "scaffold_200001.1"; protein_version "1";
2 jgi start_codon 1179 1181 . - 0 gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi exon 614 789 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "2"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; exon_id "scaffold_200001.1.exon2"; exon_version "1";
2 jgi CDS 614 789 . - 1 gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "2"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; protein_id "scaffold_200001.1"; protein_version "1";
2 jgi exon 171 435 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "3"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; exon_id "scaffold_200001.1.exon3"; exon_version "1";
2 jgi CDS 194 435 . - 2 gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "3"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; protein_id "scaffold_200001.1"; protein_version "1";
2 jgi stop_codon 191 193 . - 0 gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; exon_number "3"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi five_prime_utr 1182 1201 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi three_prime_utr 171 190 . - . gene_id "scaffold_200001.1"; gene_version "1"; transcript_id "scaffold_200001.1"; transcript_version "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi gene 1343 3488 . + . gene_id "scaffold_200002.1"; gene_version "1"; gene_source "jgi"; gene_biotype "protein_coding";
2 jgi transcript 1343 3488 . + . gene_id "scaffold_200002.1"; gene_version "1"; transcript_id "scaffold_200002.1"; transcript_version "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
2 jgi exon 1343 1612 . + . gene_id "scaffold_200002.1"; gene_version "1"; transcript_id "scaffold_200002.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; exon_id "scaffold_200002.1.exon1"; exon_version "1";
2 jgi CDS 1364 1612 . + 0 gene_id "scaffold_200002.1"; gene_version "1"; transcript_id "scaffold_200002.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding"; protein_id "scaffold_200002.1"; protein_version "1";
2 jgi start_codon 1364 1366 . + 0 gene_id "scaffold_200002.1"; gene_version "1"; transcript_id "scaffold_200002.1"; transcript_version "1"; exon_number "1"; gene_source "jgi"; gene_biotype "protein_coding"; transcript_source "jgi"; transcript_biotype "protein_coding";
如果我这样做:
print(f)
print(f2)
# I get
<_io.TextIOWrapper name='chr2_head25.gtf' mode='r' encoding='UTF-8'>
<_io.TextIOWrapper name='test_output.txt' mode='w' encoding='UTF-8'>
但是,如果代码中没有任何 print 语句,我会在终端上打印 f2 数据(即最终输出)。为什么?
【问题讨论】:
-
您是否处于交互模式?
-
我不这么认为。我在 pycharm 上写了代码,这让我遇到了这个问题。但是,然后我使用
python code.py运行了 python 文件,但仍然遇到同样的问题。 -
关闭
f2在代码中是多余的。我知道。但是,我的问题不同,关闭 f2 无关。 -
您确定您正在查看的“控制台”实际上并没有连接到
test_output.txt,而不是连接到程序的标准输出或附加到程序的标准输出? -
我无法使用提供的代码和输入重现您的问题。
标签: python python-3.x terminal output pycharm