Search code examples
pythonfileword-count

open: invalid mode or filename


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'

Solution

  • 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