답변:
당신은 항상 사용할 수 있습니다 :
'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"
경로 나 파일 이름에 공백을 두지 않는 것이 좋습니다. 그리고 문자열에 이중 백 슬래시를 사용할 수 있습니다.
"C:\\meshes\\as.jpg"
"C:\"
첫 번째 항목 으로 넣는 것이 옳은 일 입니까? 그게 청결의 일부를 엉망으로 join
만드는가?
"C:\"
파일 이름의 중간에 넣기 를 원하지 않습니다 . 또한 os.path.normpath
조인 전후에 경로를 멋지게 인쇄 할 수 있습니다 .
os.path.join( "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')
Windows에서는 PowerShell 을 명령 줄 인터페이스로 사용하는 한/
모든 장소에서 Linux 또는 macOS처럼 경로에서 사용할 수 있습니다 . 그것은 온다 미리 설치된 Windows에서 그리고 많은 지원하는 리눅스 명령 과 같은 명령을 사용합니다.ls
Windows 명령 프롬프트 ( cmd
Windows 시작 메뉴에 입력 할 때 나타나는 프롬프트)를 사용하는 경우 \
그 안에 경로를 지정해야 합니다. /
다른 모든 장소 (코드 편집기, Python 대화식 모드 등)에서 경로를 사용할 수 있습니다 .