2013-07-05 4 views
1

이것은 단어 수를 계산하는 프로그램입니다. 어떻게 더 단순하게 만들 수 있을까요?열기 : 잘못된 모드 또는 파일 이름

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) 

킵이 오류 메시지가 표시 :

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' 

답변

3

\\을 원시 문자열을 사용하거나 탈출. 즉,이 때문에 '\t'이 탭 공간으로 변환됩니다없이 필요합니다

r'C:\Data\test.txt' 

예 :

>>> 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 
+0

아니면 그냥 사용할 수있는' 'C : \\ 데이터 \\ test.txt''합니다. –

+0

이중 백 슬래시를 사용해 보았지만 오류 메시지가 나타나지 않았습니다. 그러나 실제로 프로그램을 실행할 때 아무 것도 나타나지 않습니다. 단지 '다시 시작'이라고 표시되는 이유는 무엇입니까? – kmz

+0

@ user2554477 프로그램에서 아무 것도 인쇄하지 않습니다. 인쇄하려면 어떻게해야합니까? –