Pergunta

This is the word count program. how could it be made more simple?

import re
from collections import Counter

with open('C:\Data\test.txt') as f:
passage = f.read()

words = re.findall(r'\w+', passage)

cap_words = [word.upper() for word in words]

word_counts = Counter(cap_words)

keep getting this error message:

Traceback (most recent call last):
File "C:/Python27/wordcount", line 4, in <module>
with open('C:\Data\test.txt') as f:
IOError: [Errno 22] invalid mode ('r') or filename: 'C:\\Data\test.txt'
Foi útil?

Solução

Use a raw string or escape each \ with a \. That is required because without it '\t' will be converted to a tab space:

r'C:\Data\test.txt'

Example:

>>> print 'C:\Data\test.txt'
C:\Data est.txt                 #\t is converted to tab
>>> print r'C:\Data\test.txt'   
C:\Data\test.txt                #here it is fine

>>> print 'C:\\Data\\test.txt'  #same as raw string, but manual escaping
C:\Data\test.txt
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top