首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If语句和写入文件

If语句和写入文件
EN

Stack Overflow用户
提问于 2017-02-18 03:06:47
回答 1查看 46关注 0票数 1

我正在使用KEGG下载基因组数据并将其写入文件。总共有26个文件,其中一些文件包含字典'COMPOUND'。我想将它们分配给CompData,并将它们写入输出文件。我试着把它写成一个if True语句,但这是行不通的。

代码语言:javascript
复制
# Read in hsa links

hsa = []
with open ('/users/skylake/desktop/pathway-HSAs.txt', 'r') as file:
    for line in file:
        line = line.strip()
        hsa.append(line)

# Import KEGG API Bioservices | Create KEGG Variable
from bioservices.kegg import KEGG
k = KEGG()

# Data Parsing | Writing to File
# for i in range(len(hsa)):
data = k.get(hsa[2])
dict_data = k.parse(data)
if dict_data['COMPOUND'] == True:
    compData = str(dict_data['COMPOUND'])
nameData = str(dict_data['NAME'])
geneData = str(dict_data['GENE'])
f = open('/Users/Skylake/Desktop/pathway-info/' + nameData + '.txt' , 'w')
f.write("Genes\n")
f.write(geneData)
f.write("\nCompounds\n")
f.write(compData)
f.close()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 03:18:11

我想我是说

代码语言:javascript
复制
if dict_data['COMPOUND'] == True:

您(错误地)测试了字符串键'COMPOUND'dict_data中的存在。在这种情况下,你想要的是

代码语言:javascript
复制
if 'COMPOUND' in dict_data:

此外,请注意,如果键不存在,则不会发生变量compData的定义,这将在试图写入其值时引发错误。这意味着无论发生什么事情,你都应该定义它。

代码语言:javascript
复制
compData = str(dict_data.get('COMPOUND', 'undefined'))

上面的代码行意味着,如果键存在,它将得到它的值,如果不存在,它将得到'undefined'。请注意,您可以选择所需的替代值,甚至不提供任何值,这将导致默认情况下的None

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42310637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档