2015-03-21 2 views
1

Привет, ребята, что я пытаюсь сделать, это прочитать файл с цифрами поставить как в этом примере (ниже) к list[1,2,3,4]:Из файла в список

1

2

3

4

5

Я делаю это в классе. Я пытался сделать это без моего класса, как это:

def velocity(): 
items = [] 
with open('smhi.txt') as input: 
    for line in input: 
     items.extend(line.strip().split()) 
return items   

Когда я печатаю детали я получаю ["1,","2","3","4"]

ответ

0

Вам необходимо явно преобразовать тип данных цифр целого числа.

with open('file') as f: 
    print([int(i) for i in f if i.strip().isdigit()]) 

ИЛИ

with open('file') as f: 
    print([int(j) for i in f for j in i.strip()]) 

ИЛИ

with open('file') as f: 
    print([int(line) for line in f if line.strip()]) 
1

вам нужно конвертировать ваши номера в int, и вы можете использовать список понимание следующим образом, но, обратите внимание, что, как вы определяете список внутри функции его в локальном пространстве имен, чтобы вы не могли получить к нему доступ вне функции! поэтому вам нужно вернуть свой список:

def velocity(): 
    with open('smhi.txt') as input: 
     my_list=[int(line) for line in input if line.strip()] 
    return my_list 

результат:

[1, 2, 3, 4, 5] 
+0

Я получаю TypeError об ошибке: Int() аргумент должен быть строкой или числом, а не 'список' – Pellegrino

+0

@Pellegrino проверить редактирование! – Kasramvd

+0

кажется '[int (строка) для строки в f, если line.strip()]' будет достаточно. –

Смежные вопросы