0
我有一个文件,每行中有一个基因名称,我想建立一个列表,每个基因名称作为列表的一个元素。我用的FileInput从fileinput读取构建一个列表,无类型错误
def get_gene_symbols():
gene_symbols = []
for line in fileinput.input():
gene_symbol = line.strip() # assume each line contains only one gene symbol
print gene_symbol
gene_symbols = gene_symbols.append(gene_symbol)
return gene_symbols
print get_gene_symbols()
我input.txt的文件看起来像这样:
cat input.txt
CCDC83
MAST3
FLOT1
RPL11
ZDHHC20
LUC7L3
SNORD49A
CTSH
ACOT8
当我使用Python test.py input.txt中调用它,它给了我错误:
[email protected][scripts_general_use] python test.py input.txt
CCDC83
MAST3
Traceback (most recent call last):
File "test.py", line 16, in <module>
print get_gene_symbols()
File "test.py", line 11, in get_gene_symbols
gene_symbols = gene_symbols.append(gene_symbol)
AttributeError: 'NoneType' object has no attribute 'append'
前两个基因名称被打印出来,但不是其他的。怎么了?我是 python的新手。谢谢!我正在使用python 2.7
谢谢!我知道了。另一个问题是,为什么前两行打印出来,并且当第三行被读取时,python会抛出一个错误? – crazyhottommy 2014-09-01 03:19:23
第一个'print'工作正常,因为你还没有做任何追加。然后你将'genetypes'设置为'None'。第二个'print'也可以工作,因为在这个阶段你还没有尝试附加到'NoneType'。第三个'print'从不会发生,因为它在尝试附加到现在为'NoneType'的'genetypes'后会发生。 – 101 2014-09-01 03:23:48
现在明确!非常感谢! – crazyhottommy 2014-09-01 03:38:34