2015-06-20 8 views
2

Я пытаюсь нагрузки Newick строку из файла, используя следующий код:Как передать переменное имя файла на python ete?

filename = templist[1].lower().replace(" ","") + ".nwk" 
tt = Tree(filename, format=1) 

но получаю следующее сообщение об ошибке:

tt = Tree(filename, format=1) # Loads a tree structure from a newick string. The returned variable tt is the root node for the tree. 
    File "/python2.7/dist-packages/ete2-2.2.1072-py2.7.egg/ete2/coretype/tree.py", line 225, in __init__ 
    read_newick(newick, root_node = self, format=format) 
    File "/python2.7/dist-packages/ete2-2.2.1072-py2.7.egg/ete2/parser/newick.py", line 237, in read_newick 
    'Unexisting tree file or Malformed newick tree structure.' 
ete2.parser.newick.NewickError: Unexisting tree file or Malformed newick tree structure. 

Я проверил формат файла, и это ОК. Я думаю, что передаю переменную неправильно, можете ли вы указать мне, чтобы передать имя файла как переменную.

Когда я передаю имя файла как строку без использования переменной, она работает нормально, но мне нужно использовать значение переменной для загрузки дерева.

+1

Покажите нам, где указано имя файла. – kindall

+0

filename = templist [1] .lower(). Replace ("", "") - это просто вычисляется из списка и получает строку только с az chars – AJINKYA

+0

Можете ли вы распечатать имя файла и проверить, дает ли он вам результат, который вы хотите? –

ответ

1

Вы уверены, что верно format=1?

По documentation -

for named internal nodes we will use format 1

Вы уверены, что ваш Newick дерево назвал внутренние узлы? Если нет, попробуйте без передачи какого-либо значения аргументу format.


Кроме того, убедитесь, что имя файла либо absolute путь к файлу, или если его относительный путь, например a.nwk, то убедитесь, что файл находится в директории, из которой вы работаете сценарий питона ,

+0

Да, все работает отлично со строкой. Довольно уверенная проблема в том, как передается переменная. – AJINKYA

+0

распечатайте имя файла и покажите нам, что вы получаете –

+0

templist = ['00Outdoor', 'TENNIS'] filename = tennis.nwk – AJINKYA