如何用"#"开始一个python变量名?



我编写了代码,可以执行几个步骤来处理一些文件(BAM文件,以防您好奇,但这与我的问题无关:http://www.broadinstitute.org/igv/BAM(准备它们以由其他人编写的软件进行分析。

在处理 BAM 文件的代码中,我希望包含几行来生成一个数据库,该数据库记录位置和有关已处理文件的其他相关信息。这对于使用上述软件进行分析是必要的。按照这个下游软件的工作方式,数据库顶部应该有一个标头,该标头以行首的#开头开头。

现在,我

正在尝试使用熊猫数据帧,稍后我打算将其写入文本文件。这是一个示例代码片段,从理论上讲,显示了我正在尝试做的事情。它不起作用,因为#将行的其余部分变成注释。我还试图通过键入 # 来转义特殊字符,但随后它抱怨说,SyntaxError: unexpected character after line continuation character. 有没有人对如何解决这个问题有任何想法,以便我可以用#字符开始结果数据库的标题行。

import pandas as pd
I_notid_lst = ["1","3"]
II_dir = ["/exampledir/moreexmaple/fake_01.bam.by_chr", "/exmapledir/moreexample/fake_02.bam.by_chr"]
db_df = pd.DataFrame(dict(#I_notid = I_notid_lst, II_dir = II_dir_lst))
print db_df.head()

严格来说,#I_notid不是一个变量,而是给dict一个关键字参数,它是创建字典的构造函数。像名称这样的关键字参数通常只能由字母数字字符和_组成,因此这种用法允许创建只有字符串键并遵循python命名约定的字典。

但是,与往常一样,您可以使用{key: value, ...}字典文本结构来创建具有任何允许类型的键的字典,当然也可以使用具有非字母数字字符的字符串键:

db_df = pd.DataFrame({'#I_notid': I_notid_lst, 'II_dir': II_dir_lst})

相关内容