2014-10-06 5 views
1

그래서이 코드 줄을 사용하여 Excel 파일을 읽습니다.파일 열기 및 데이터 읽기

fin=open("C:\Users\Student\Desktop\Python Coding\bodyfat.csv",'rU') 
fin.readline() 

그러나이 오류 문가 계속 나는

>>> fin=open("C:\Users\Student\Desktop\Python Coding\bodyfat.csv",'rU') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IOError: [Errno 22] invalid mode ('rU') or filename: 'C:\\Users\\Student\\Desktop\\Python Coding\x08odyfat.csv' 
>>> fin.readline() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'fin' is not defined 

여기에 무슨 일이 일어나고 있는지에 대한 어떤 생각을 무슨 일이 일어나고 있는지 아무 생각이 없다?

답변

2

을 탈출 할 수)

>>> "C:\Users\Student\Desktop\Python Coding\bodyfat.csv" 
'C:\\Users\\Student\\Desktop\\Python Coding\x08odyfat.csv' 
             #^what? 

제 오류가 발생한 후, fin 할당되지 않는다 때문에 두번째 에러가 발생한다.

>>> r"C:\Users\Student\Desktop\Python Coding\bodyfat.csv" 
'C:\\Users\\Student\\Desktop\\Python Coding\\bodyfat.csv' 

(두배에 대해 걱정하지 마십시오, 그것은 단지 :

간단한 수정은 백 슬래시는 일반 문자로 처리해야 함을 표시하기 위해, r 접두사 "원시 문자열"을 사용하는 것입니다 그 리터럴 백 슬래시가 있음을 나타내는 것이 아니라 따라 문자를 탈출의 파이썬의 방법) 또한

, 당신은 파일 처리에 대한 with "컨텍스트 관리자"를 사용해야합니다.

with open(r"...") as fin: 
    line = fin.readline() 
    ... 
2

문자열 백 슬래시를 올바르게 이스케이프 처리하지 않습니다. 추적에 "Coding \ x08odyfa"라고 표시됩니다. 당신은 표준 파이썬 문자열에 백 슬래시가 그들을 따라 문자에 흥미있는 일을, 때문에 (자세한 내용은 the documentation on string literals를 참조 원시 문자열

r"C:\Users\Student\Desktop\Python Coding\bodyfat.csv" 

을 사용하거나 첫 번째 오류가 발생 이스케이프 문자

"C:\\Users\\Student\\Desktop\\Python Coding\\bodyfat.csv" 
관련 문제