2016-09-26 4 views
1

VIDLE 및 VPython을 사용하고 있습니다. 내가하려는 것은 "weather.txt"의 값을 읽는 것뿐입니다. 읽어야하는 값은 파일의 두 번째 행에서 시작하므로 첫 번째 행은 건너 뜁니다. 내가 잘못을 정확히VPython : 파일 읽기 오류

Traceback (most recent call last): File "Untitled", line 45 datafile = open(filename, 'r') IOError: [Errno 22] invalid mode ('r') or filename: '\xe2\x80\xaa\xe2\x80\xaa\xe2\x80\xaaC:\Users\Ashley\Documents\weather.txt'

모든 아이디어 : 나는 다음과 같은 오류가 발생 계속,

try: 
    filename = "‪‪‪C:\Users\Ashley\Documents\weather.txt" 
except (ValueError, IndexError), e: 
    print e 
    sys.exit() 

datafile = open(filename, 'r') 
datafile.readline() 

for line in datafile: 
    data = line.split() 

    try: 
     date = data[2] 
     temperature = float(data[3]) 

     year = float(date[0:4]) 
     month = float(date[4:6]) 
     day = float(date[6:8]) 

     decimalYear = getDecimalYear(year, month, day) 

     meanTimes.append(decimalYear) 
     meanTemperatures.append(temperature) 

    except: 
     print "Tossing line", line 

datafile.close() 

을 그리고 다음은 내 코드의 단편이다? 감사.

답변

1

파일 경로에서 백 슬래시를 이스케이프 처리해야합니다. 또한 문자열 시작 부분에 보이지 않는 유니 코드 문자가있는 것으로 보입니다. 사용

시도 : 이 filename = 'C:\\Users\\Ashley\\Documents\\weather.txt'

또한, 제 try: except: 블록이 필요하지 않습니다, 그 예외 변수를 설정하여 간단하게 제기 될 수있는 방법은 없습니다.

0

열쇠는 당신이 당신의 파일 이름 앞에 추가 된 오류 메시지가 표시되는 쓰레기에 있습니다

'\xe2\x80\xaa\xe2\x80\xaa\xe2\x80\xaaC:\Users\Ashley\Documents\weather.txt' 

당신이 파이썬 프롬프트에서 무엇을 의미하는지 조사 할 수 있습니다 :

>>> '\xe2\x80\xaa\xe2\x80\xaa\xe2\x80\xaa'.decode('utf-8') 
u'\u202a\u202a\u202a' 

구글 유니 코드 코드 포인트 U + 202A가 "left-to-right embedding" character 인 것으로 밝혀졌으며 아마 0 너비 문자 중 하나 일 것입니다. 아마도 소스 파일에 복사하여 붙여 넣었을 것입니다. 내가 파일 이름과 라인을 삭제하고 다시 입력하는 것이 좋습니다거야.