2015-12-05 5 views
0

Пожалуйста, помогите. Это действительно детский вопрос, но я в недоумении. Почему я не могу вернуть массив?Array on python function

Существует мой сценарий:

groups=[] 

host_groups_list = '/usr/local/host_groups.list' 

def read_file(file_path): 
     open_file = open(host_groups_list, "r+") 
     list=[] 
     for i in open_file: 
       list.append(str(i.replace("\n", ""))) 
     print list 
     return list 

goups = read_file(host_groups_list) 
print groups 

Выход:

['hostgroup1', 'hostgroup2'] 
[] 
+0

1. Вы не закрыли этот файл после его открытия. 2. Опечатка и использование 'list' в качестве имени переменной, как сказал Майк. 3. 'list.append (str (i.replace (" \ n "," ")))', 'str()' бесполезно здесь. 4. Я думаю, вы имеете в виду 'open_file = open (file_path," r + ")' вместо 'open_file = open (host_groups_list," r + ")'. 5. 'groups = with open (''/usr/local/host_groups.list '') как f: [i.strip() для i в f]'. –

ответ

3

Орфографический Важно:

goups = read_file(host_groups_list) 
print groups 

Примечание недостающее r в goups.

В начале вам не нужен groups=[]. Удалите его, и Python даст ошибку имени для вашего оператора печати.

Лучше не использовать list как имя для своих переменных, потому что оно тени встроенного.

+0

@JustMe: используйте редактор с автозаполнением (я лично рекомендую Sublime Text 2), чтобы избежать подобных ошибок в будущем. И не создавайте ненужные глобалы. – GingerPlusPlus