2017-10-07 6 views
0

나는 파이썬의 OS 모듈을 사용하는 방법을 학습하고 내가 직접 파이썬으로 파일 탐색기에서 파일 경로를 복사 할 때 다음과 같은 오전 :파이썬에서 os.path.exists()를 사용할 때 백 슬래시가 작동하지 않는 이유는 무엇입니까? 그러나 슬래시가 작동합니까?

os.path.exists('C:\Users\nheme\Documents\Classes\ME 4720 TSL\Flowmeter 
Lab\example.docx') 
Out[43]: False 

출력이 False는 때문에 이해가되지 않는 파일과 경로가 확실히 존재합니다. 다음과 같이 백 슬래시를 다음과 같이 슬래시로 바꿉니다.

os.path.exists('C://Users//nheme//Documents//Classes//ME 4720 TSL//Flowmeter 
Lab/example.docx') 
Out[42]: True 

True를 반환합니다. 누군가 이것이 왜 일어나는지 설명해 주시겠습니까?

+0

그것은 의미가 않습니다 변경할 수 있습니다 : ''\의 n''입니다 경로에 존재하지 않는 개행 문자. ''\\ n ''은 백 슬래시 뒤에 'n'이옵니다. ''/ n ''은'\\ n ''로 변환됩니다. –

+1

백 슬래시가 이스케이프 문자이기 때문입니다. – gus27

+2

경로 앞에 'r'을 넣으십시오. '(r'C : \ Users \ nheme \ Documents)' – Joe

답변

1

백 슬래시는 파이썬 문자열에서 이스케이프 문자이기 때문에.

다음은 파이썬은 줄 바꿈에 대한 이스케이프 코드로 \n 해석했다

>>> s = 'C:\Users\nheme\Documents\Classes\ME 4720 TSL\FlowmeterLab\example.docx' 
>>> print s 
C:\Users 
heme\Documents\Classes\ME 4720 TSL\FlowmeterLab\example.docx 
>>> 

파이썬 2에 해당 문자열을 인쇄하려고 할 때 발생합니다.

은 원시 문자열

>>> s = r'C:\Users\nheme\Documents\Classes\ME 4720 TSL\FlowmeterLab\example.docx' 
>>> print s 
C:\Users\nheme\Documents\Classes\ME 4720 TSL\FlowmeterLab\example.docx 
>>> 

를 사용하여 예를 들어 그 주위 가지 방법이 있습니다 또는 당신은 모든 \\\

>>> s = 'C:\\Users\\nheme\\Documents\\Classes\\ME 4720 TSL\\FlowmeterLab\\example.docx' 
>>> print s 
C:\Users\nheme\Documents\Classes\ME 4720 TSL\FlowmeterLab\example.docx 
관련 문제