混淆模块关于选项卡的行为令人困惑

时间:2014-02-06 12:49:31

标签: python regex

作为一名新手程序员,我最近偶然发现了我执行正则表达式的奇怪行为。通过解析excel文件,我用这种结构的键填充字典:

1   21555159    A   T   G   P
15  2626264985  C   A   R   Q
X   515151  G   C   D   W
…

六个条目是制表符分隔的,我需要它们以此形式进行查询。 稍后,我解析另一个文件,其中所述键应该在某些行的开头找到(完全如上图所示),这个相当笨拙的正则表达式:

match = re.search("(^.{1,2}\t\d+\t\D\t\D\t\D\t\D)", line_iterater)

然后 - match.group() - 例如,我提供了这个输出......

1\t21555159\tA\tT\tG\tP

...当然,这与字典中的键不匹配,所以我无法访问相应的项目。

问题:为什么re模块的这种行为为标签''得到'\ t'' 或者我对它的理解有什么不妥。

(我天真的补救措施是使用\t

来锁定密钥中的所有标签

1 个答案:

答案 0 :(得分:1)

输出,

1\t21555159\tA\tT\tG\tP

是对的。 Python使用escape sequence \t表示制表符。并且,正如Cilyan,Pykler和l4mpi已经说过的那样,使用csv module解析制表符描述的值会更容易且更不容易出错。

其他