파이썬의 Windows 경로
예를 들어 Windows 디렉토리를 나타내는 가장 좋은 방법은 무엇입니까 "C:\meshes\as"
? 스크립트를 수정하려고 시도했지만 디렉토리를 올바르게 가져올 수 없기 때문에 작동하지 않습니다. '\'
이스케이프 문자로 작동 한다고 가정 합니까?
당신은 항상 사용할 수 있습니다 :
'C:/mydir'
이것은 리눅스와 윈도우 모두에서 작동합니다. 다른 가능성은
'C:\\mydir'
일부 이름에 문제가 있으면 원시 문자열 리터럴을 사용해 볼 수도 있습니다.
r'C:\mydir'
그러나 모범 사례는 os.path
항상 OS에 대한 올바른 구성을 선택하는 모듈 기능 을 사용하는 것입니다.
os.path.join(mydir, myfile)
파이썬 3.4에서 pathlib 모듈을 사용할 수도 있습니다 . 이것은 위와 동일합니다.
pathlib.Path(mydir, myfile)
또는
pathlib.Path(mydir) / myfile
os.path
모듈을 사용하십시오 .
os.path.join( "C:", "meshes", "as" )
또는 원시 문자열을 사용하십시오.
r"C:\meshes\as"
예, \
파이썬에서 문자열 리터럴은 이스케이프 시퀀스의 시작을 나타냅니다. 경로에 유효한 두 문자 이스케이프 시퀀스 가 있으며 ASCII Bell 인 한 문자 \a
로 축소됩니다 .
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
다른 일반적인 이스케이프 시퀀스에는 \t
(탭), \n
(줄 바꿈), \r
(캐리지 리턴)이 포함됩니다.
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
보시다시피,이 모든 예제에서 리터럴의 백 슬래시와 다음 문자는 함께 그룹화되어 최종 문자열에 단일 문자를 형성합니다. 파이썬 이스케이프 시퀀스의 전체 목록은 here 입니다.
이를 처리하는 다양한 방법이 있습니다.
파이썬은
r
또는 접두사가 붙은 문자열 리터럴에서 이스케이프 시퀀스를 처리하지 않습니다R
.>>> r'C:\meshes\as' 'C:\\meshes\\as' >>> print(r'C:\meshes\as') C:\meshes\as
Windows의 Python도 슬래시를 처리해야합니다.
당신은 사용할 수 있습니다
os.path.join
...>>> import os >>> os.path.join('C:', os.sep, 'meshes', 'as') 'C:\\meshes\\as'
... 또는 최신
pathlib
모듈>>> from pathlib import Path >>> Path('C:', '/', 'meshes', 'as') WindowsPath('C:/meshes/as')
참고 URL : https://stackoverflow.com/questions/2953834/windows-path-in-python
'Programming' 카테고리의 다른 글
작곡가 삭제 변경 : [y, n, v, d, s ,?] (0) | 2020.08.05 |
---|---|
덮어 쓰기보다는 {% 블록 %}에 추가 할 수 있습니까? (0) | 2020.08.05 |
변수에 traceback / sys.exc_info () 값을 저장하는 방법은 무엇입니까? (0) | 2020.08.05 |
다른 파일에 golang "undefined"함수가 선언되어 있습니까? (0) | 2020.08.05 |
x86 어셈블리에서 xor, mov 또는 and에서 레지스터를 0으로 설정하는 가장 좋은 방법은 무엇입니까? (0) | 2020.08.05 |