2016-02-26 2 views
0

нужно выбрать первое слово в каждой строке и составьте список из них из текстового файла:Перечислите первые слова в строку из текстового файла в Python

I would copy the text but it's the formatting is quite screwed up. will try Всех остальные тексты не нужны.

Я попытался

string=[] 
for line in f: 
    String.append(line.split(None, 1)[0]) # add only first word 

из другого решения, но он продолжает возвращать «Index вне границ» ошибки.

Я могу получить первое слово из первой строки, используя string=text.partition(' ')[0] , но я не знаю, как это повторить для других строк.

Я до сих пор новичок в python и на сайте, надеюсь, что мое форматирование терпимо! (При открытии, закодировать текст принимать символы, как и wikitxt=open('racinesPrefixesSuffixes.txt', 'r', encoding='utf-8') это может быть проблема?)

+4

Пожалуйста, не размещайте изображения. Опубликуйте их как текст. и не называйте переменную как 'string', так как это не очень хорошая практика. – The6thSense

+0

Будем помнить об этом в следующий раз, спасибо. –

ответ

4

Причина это приподняв IndexError потому, что конкретная строка пуста. Вы можете сделать это:

words = [] 
for line in f: 
    if line.strip(): 
     words.append(line.split(maxsplit=1)[0]) 

Здесь line.strip() проверяет, если строка состоит только из пробельных. Если он состоит только из пробелов, он просто пропустит строку.

Или, если вам нравится list comprehension:

words = [line.split(maxsplit=1)[0] for line in f if line.strip()] 
+0

Спасибо, но теперь он возвращает []. Вот мой код от начала до конца: (мой бог, форматирование, позвольте мне попытаться это исправить) 'wikitxt = open ('racinesPrefixesSuffixes.txt', 'r', encoding = 'utf-8') wiki = wikitxt .read() #taking определенную часть текстового файла запуска = '' #Racines конец = '#' racinesgros = ((wiki.split (начало)) [1] .split (конец) [0]) слова = [line.split (maxsplit = 1) [0] для линии в wikitxt, если line.strip()] печати (слов) ' Если я использую racinesgros вместо wikitxt в функции он вернет накануне ry в файле в списке. –

+0

Когда вы делаете 'wiki = wikitxt.read()', вы фактически просматриваете весь файл в одну строку. Как правило, вы не хотите этого делать, но если вам нужно, вы можете заменить '[line.split (maxsplit = 1) [0] для строки в wikitxt, если line.strip()]' с '[line.split (maxsplit = 1) [0] для строки в wiki.splitlines(), если line.strip()] '. Функция 'str.splitlines()' будет разделять строку на список строк строк. – Kupiakos

+0

Я вижу! что исправил его, спасибо вам большое! Что обычно было бы лучшим способом импортировать такой файл в python для работы? Я не обязан использовать его как одну строку, и я вижу, как это может вызвать проблемы. –

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

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