【问题标题】:Python - How to recognize EOL in FASTA filePython - 如何识别 FASTA 文件中的 EOL
【发布时间】:2013-12-03 19:19:52
【问题描述】:

我有一个 python 脚本需要逐个字符地读取 FASTA 文件。为此,我一直在使用c = f.read(1),其中 f 是打开的文件。我需要它来识别它何时到达行尾,但 '\n' 和 '\r' 似乎不起作用。我以前从未使用过这种文件类型,所以我不确定 FASTA 是否不同。有谁知道如何做到这一点?谢谢!

编辑:EOF != EOL。我知道如何找到文件的结尾。

编辑 2:我用来搜索 EOL 字符的行是这样的:

if c == '\n' or c == '\r':
    #operations to perform if found...

【问题讨论】:

  • 只是想知道你为什么要这样做......你知道有无数的 FASTA 解析器和支持库来处理这种事情,对吧?
  • 是的,但是我被告知要设计一种无需任何专门构建的解析器的方法,我自己设计
  • 你是用文本模式还是二进制模式打开?
  • 我已经在 Python 中为 FASTA 编写了解析器,并且使用标准的行尾字符可以正常工作。如果问题出在其他地方,也许您可​​以发布更多代码?
  • 根据Wiki,EOL 是正常的,并与> 继续一行,直到下一个>,这样您就可以正常阅读行...您是否难以识别结尾序列?

标签: python eol fasta


【解决方案1】:

universal newline模式打开文件:

with open('myfile.fasta', 'rU') as fp:
   ...

并将字符与'\n'进行比较:

if c == '\n':

【讨论】:

  • 我从未听说过,但它似乎奏效了。谢谢! :)
猜你喜欢
  • 1970-01-01
  • 2015-01-08
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多