2014-01-24 1 views
1

Я пытаюсь прочитать некоторые цифры из файла и сохранить их в массив с именем numbers. Я использую strip() для каждой строки, чтобы удалить \n в конце каждой строки. Я также использую split(' ') для каждой строки, чтобы удалить пробелы между числами.Удаление пробелов от начала и конца каждой строки в файле в python

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

Это мой код:

def read_from_file(): 
    f = open('input_file.txt') 
    numbers = [] 
    for eachLine in f: 
     line = eachLine.strip() 
     for x in eachLine.split(' '): 
      line2 = int(x) 
      numbers.append(line2) 
    f.close() 
    print numbers 

Это текстовый файл, в котором подчёркивания пространства:

_9 5_ 
_2 3 1 5 4_ 
_2 1 5_ 
_1 1_ 
_2 1 2_ 
_2 2 3_ 
_2 3 4_ 
_3 3 4 5_ 
_2 4 5_ 
_2 1 5_ 
_3 1 2 5_ 

ответ

3

strip() уже удаляет пробелы с обоих концов. Ошибка в строке:

for x in eachLine.split(' '): 

Вы должны использовать line и не eachLine в for.

Чтобы избежать такого рода проблем можно избежать, используя промежуточную переменный на всех:

for line in f: 
    for x in line.strip().split(): 
     # do stuff 

Обратите внимание, что вызов split() без аргументов расщепляется на любую последовательности пробелов, которые, как правило, то, что вы хотите. См.:

>>> 'a b c d'.split() 
['a', 'b', 'c', 'd'] 
>>> 'a b c d'.split(' ') 
['a', '', 'b', 'c', 'd'] 

Обратите внимание на пустую строку последнего результата. split(' ') разделить на каждые одиночный пробел.

+0

Вы можете использовать 'для строки в (line.strip() для линии в F):', так что нет никакой необходимости делать зачистки в петле , – Matthias

+0

@Bakuriu Я изменил свой код, чтобы не использовать промежуточную переменную, и я изменил 'split ('')' на 'split()'. Теперь он работает так, как должен. спасибо – user1956190

0
with open("myfile.txt") as lines: 
    for line in lines: 
     print line.strip() 

Использование .strip удалить начальные и конечные пробелы

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

  • Нет связанных вопросов^_^