Python의 Windows 경로
예를 들어 Windows 디렉토리를 표시하는 가장 좋은 방법은 무엇입니까?"C:\meshes\as"
스크립트를 수정하려고 했지만 디렉토리가 올바르게 표시되지 않아 작동하지 않습니다.'\'
탈옥 캐릭터로 연기?
언제든지 사용할 수 있습니다.
'C:/mydir'
이는 Linux와 Windows 모두에서 작동합니다.다른 장점은
'C:\\mydir'
이름에 문제가 있는 경우 raw string literal을 사용해 보십시오.
r'C:\mydir'
단, 베스트 프랙티스는os.path
항상 OS에 맞는 구성을 선택하는 모듈 기능:
os.path.join(mydir, myfile)
python 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"
네.\
in Python string literals는 이스케이프 시퀀스의 시작을 나타냅니다.경로에는 유효한 2글자 이스케이프 시퀀스가 있습니다.\a
는 ASCII 벨이라는1개의 문자로 정리되어 있습니다.
>>> '\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']
보시는 바와 같이 이 모든 예에서는 백슬래시와 리터럴의 다음 문자가 함께 그룹화되어 마지막 문자열에서 단일 문자가 형성되어 있습니다.파이썬의 탈출 시퀀스의 전체 목록은 여기에 있습니다.
이 문제를 해결하는 방법에는 여러 가지가 있습니다.
Python은 또는 다음과 같이 접두사가 붙은 문자열 리터럴로 이스케이프 시퀀스를 처리하지 않습니다.
>>> r'C:\meshes\as' 'C:\\meshes\\as' >>> print(r'C:\meshes\as') C:\meshes\as
Windows의 Python은 앞으로 슬래시도 처리해야 합니다.
사용할 수 있습니다.
>>> import os >>> os.path.join('C:', os.sep, 'meshes', 'as') 'C:\\meshes\\as'
... 또는 새로운 모듈
>>> from pathlib import Path >>> Path('C:', '/', 'meshes', 'as') WindowsPath('C:/meshes/as')
사용하다Path
:
from pathlib import Path
data_folder = Path("source_data/text_files/")
file_to_open = data_folder / "raw_data.txt"
print(file_to_open.read_text())
Path
는 경로와 같은 문자열을 사용하여 현재 OS(Windows 또는 Linux)의 모든 항목을 조정합니다.예를 들어 Linux에서는 모든 백슬래시를 슬래시로 변환하고 Windows에서는 그 반대로 변환합니다.
전문 기사:Python 3 퀵팁: Windows, Mac 및 Linux에서 파일 경로를 쉽게 처리할 수 있는 방법
내 경험:
- 나는 6개월 동안 그것을 사용했다.
os.path.join(...)
로 전환되었습니다.normpath(...)
마침내 로 전환했다.Path(...)
이 세 가지를 모두 사용해 본 패스는 세계 최고입니다.
패스의 장점os.path.join(...)
:
- 깨끗하다.
- 타이핑이 적습니다.
- 경로를 보다 쉽게 읽을 수 있습니다(가독성이 향상됨).
- 다른 할 수 있습니다.
/
(동료) - 좀 더 모던하게.
'' 'normpath(...)
:
- 를 사용하여 할 수 .
/
로 rather rather rather rather rather rather rather rather rather 로 돌아갈 필요os.path.join(...)
규범 경로 - 깨끗하다.
- 타이핑이 적습니다.
- 경로를 보다 쉽게 읽을 수 있습니다(가독성이 향상됨).
- Linux와 Windows 간에 포팅할 때 버그가 발생할 가능성이 적습니다.
- 좀 더 모던하게.
Python raw 문자열은 문자열 리터럴 앞에 'r' 또는 'R'을 붙여서 생성됩니다.Python 원시 문자열은 백슬래시()를 리터럴 문자로 처리합니다.이것은 백슬래시를 포함하는 문자열을 가지고 이스케이프 문자로 취급하지 않을 때 유용합니다.
다음과 같은 수동 작업:
WindowsPath("C:\meshes\as")
또는 r 또는 R을 사용하여 다음을 수행합니다.
WindowsPath(r'C:/meshes/as')
언급URL : https://stackoverflow.com/questions/2953834/windows-path-in-python
'programing' 카테고리의 다른 글
JSON 대신 생성된 HTML을 반환하는 것이 나쁜 관행인 이유는 무엇입니까?아니면 그러한가? (0) | 2022.10.08 |
---|---|
어떤 결과가 나오든 0으로 나눗셈을 지원하는 가장 빠른 정수 나눗셈은 무엇입니까? (0) | 2022.10.08 |
Windows 10에서 MariaDB에 대한 쿼리 로깅 (0) | 2022.10.08 |
OSX 10.6에서 Python 및 Django와 함께 MySQLdb를 사용하는 방법 (0) | 2022.10.08 |
Python을 사용하여 문자열에서 문자를 삭제하는 방법 (0) | 2022.10.08 |