首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中声明变量

在python中声明变量
EN

Stack Overflow用户
提问于 2011-08-20 05:51:44
回答 1查看 325关注 0票数 0

我想解析一个文件以搜索一个单词并打印下一行。我已经编写了如下python脚本

代码语言:javascript
复制
infile = open("s.sdf","r")
output = open("sample.txt","w")
d = None
HD = None
HA = None
M = None

for line in infile:
      if line.startswith(">  <PUBCHEM_COMPOUND_CID>"):
         d = infile.next().strip()
         print d      
      elif line.startswith(">  <PUBCHEM_CACTVS_HBOND_DONOR>"):
         HD = infile.next().strip()
         print HD
      elif line.startswith(">  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>"):
         HA = infile.next().strip()
         print HA
      elif line.startswith(">  <PUBCHEM_MOLECULAR_WEIGHT>"):
         M = infile.next().strip()
         print M

      print "%s \t  %s  \t  %s  \t  %s" %(d,HD,HA,M)
      output.write("%s  \t  %s  \%s \t  %s" %(d,HD,HA,M))

但不幸的是,我得到了如下错误

代码语言:javascript
复制
None None None None

None None None None

None None None None

None None None None
.......

谁能告诉我怎么解决这个问题..

提前感谢

N

EN

回答 1

Stack Overflow用户

发布于 2011-08-20 06:16:51

要跳过与这些字符串不匹配的行,请添加检查:

代码语言:javascript
复制
if any(bool(x) for x in d, HD, HA, M):
    print ...
    output.write

尝试在调试器中运行脚本:

代码语言:javascript
复制
$ python -m pdb your_script.py

看看有哪些变量,哪里出了问题。由于PDB不方便,您可能需要安装ipdbpudb

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

https://stackoverflow.com/questions/7127813

复制
相关文章

相似问题

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