2016-02-29 7 views
1
import string 
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation)) 

with open('data10.txt', 'r') as f: 
for line in f: 
    for word in line.split(): 
     w = f.read().translate(remove) 
     print(word.lower()) 

Я этот код здесь, и по какой-то причине, translate(remove) оставляет хорошее количество знаков препинания в анализируемом файле.Python разбора прописные и удаления пунктуации не функционирует должным образом

+0

'w = f.read(). Translate (remove)' будет считывать весь файл в одну строку, вызывать 'translate (remove)' в этой строке и присваивать результат 'w'. Повторяется ли 'w' снова? Если код здесь завершен, то нет, он игнорируется. –

ответ

1

Почему вы читаете весь файл в цикле for?

Попробуйте это:

import string 
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation)) 

with open('data10.txt', 'r') as f: 
    for line in f: 
     for word in line.split(): 
      word = word.translate(remove) 
      print(word.lower()) 

Это будет печатать наши нижней обсаженных и зачищенные слов, по одному в каждой строке. Не совсем уверен, что это то, что вы хотите.

+0

Это исправлено! Это был мой первый раз, когда я использовал python, и я этого не заметил. – jgree157

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