2013-07-16 4 views
0

Я открываю файл, который может быть что-то вроде этого ...Python текстовых файлов в список строк

Это было лучшее из времен,

это было худшее из времен.

Допустим, это имя файла myFile1.txt

Я хочу, чтобы этот файл разделиться на эту

[['It','was','the','best','of','times',','], 
['it','was', 'the','worst','of','times','.']] 

Это должно быть списком строк ...

Этих это моя идея ...

def Split(): 
    inFile=open('myFile1.txt','r') 

    for line in inFile: 
    separate=list(line.split()) 
    return(separate) 

print(Split()) 

будет что-то как эта работа?

ответ

0

Вы можете получить желаемый , объявив separate = [] вне цикла, а затем добавив в список результат line.split(). Вам не нужно использовать функцию list, так как line.split() уже возвращает список.

Вы можете попробовать это:

def Split(): 
    separate = [] 
    with open('myFile1.txt','r') as inFile: 
    for line in inFile: 
     separate.append(line.split()) 
    return(separate) 
0
def Split(): 
    results=[] 
    inFile=open('myFile1.txt','r') 
    for line in inFile.readlines(): 
     results.append(line.split()) 
    return results 

print(Split()) 

Тогда все должно работать нормально. :)

+0

Это просто делает его хранить все файла в памяти. – squiguy

0

Вы возвращаетесь только через один проход через цикл for.

Что вы хотите, генератор, используя выход вместо возврата:

yield separate 

Теперь ваша функция создает объект генератора, который может перемещаться.

for line in split(): 
    print line 

(Кроме того, это, вероятно, лучше не называть свою функцию так же, как встроенный метод. Они, вероятно, не будет конфликтовать, но лучше перестраховаться, чем потом сожалеть.)

+0

Также, line.split() уже возвращает список. Вам не нужно создавать из него еще один список. – llb

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