Programming

파이썬의 Windows 경로

procodes 2020. 8. 5. 21:30
반응형

파이썬의 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 입니다.

이를 처리하는 다양한 방법이 있습니다.

  1. 파이썬은 r또는 접두사가 붙은 문자열 리터럴에서 이스케이프 시퀀스를 처리하지 않습니다R .

    >>> r'C:\meshes\as'
    'C:\\meshes\\as'
    >>> print(r'C:\meshes\as')
    C:\meshes\as
    
  2. Windows의 Python도 슬래시를 처리해야합니다.

  3. 당신은 사용할 수 있습니다 os.path.join...

    >>> import os
    >>> os.path.join('C:', os.sep, 'meshes', 'as')
    'C:\\meshes\\as'
    
  4. ... 또는 최신 pathlib모듈

    >>> from pathlib import Path
    >>> Path('C:', '/', 'meshes', 'as')
    WindowsPath('C:/meshes/as')
    

참고 URL : https://stackoverflow.com/questions/2953834/windows-path-in-python

반응형