<p>我想一些帮助使用python打开一个文件,并使用文件的内容作为一个变量。
我有一个这样的剧本。你知道吗</p>
<pre><code>#!/usr/bin/env python
with open("seqnames-test1-iso-legal-temp.txt") as f:
gene_data = {'ham_pb_length':2973, 'ham_pb_bitscore':5664,'cg2225_ph_length':3303, 'cg2225_ph_bitscore':6435,'lrp1_pf_length':14259, 'lrp1_pf_bitscore':28010,}
for line in f:
if not line.isspace():
bitscore = gene_data[line.rstrip()+'_bitscore']
length = gene_data[line.rstrip()+'_length']
if (2*0.95*length <= bitscore/2 <= 2*1.05*length):
print line
</code></pre>
<p>其中文件“seqnames-test1-iso-legal-温度.txt“是一个基因名的列表,包括ham\u-pb、cg2225、lrp1\u-pf等。我只列出了字典的前6个值,但总共有600个键。文件“seqnames-test1-iso-legal”中的300个基因名的“name”length、“name”bitscore形式-温度.txt". 你知道吗</p>
<p>因此,我想将dictionary gene\u数据保存为一个单独的文本文件,并在执行脚本时读取该文件。有没有办法做到这一点。我试着制作一个包含字典的文本文件“gene\u data1.txt”。因此,文本文件的内容是:</p>
<pre><code>gene_data = { 'ham_pb_length':2973, 'ham_pb_bitscore':5664,'cg2225_ph_length':3303, 'cg2225_ph_bitscore':6435,'lrp1_pf_length':14259, 'lrp1_pf_bitscore':28010,}
</code></pre>
<p>我试着用open函数打开文件,所以我的脚本是这样的:</p>
<pre><code>#!/usr/bin/env python
gene_data = open("gene_data1.txt", "r")
with open("seqnames-test1-iso-legal-temp.txt") as f:
for line in f:
if not line.isspace():
bitscore = gene_data[line.rstrip()+'_bitscore']
length = gene_data[line.rstrip()+'_length']
if (2*0.95*length <= bitscore/2 <= 2*1.05*length):
print line
</code></pre>
<p>但这给了我一个错误信息:</p>
<pre><code>Traceback (most recent call last):
File "fixduplicatebittest1.py", line 6, in <module>
bitscore = gene_data[line.rstrip()+'_bitscore']
NameError: name 'gene_data' is not defined
</code></pre>
<p>有没有一个简单的方法来制作这个脚本?你知道吗</p>
<p>任何帮助都将不胜感激。你知道吗</p>