나는 여기서 더 큰 그림을 볼 수 없다고 생각한다. 하지만 기본적으로 os.path.join
일반적인 문자열 연결 대신 왜 사용하는지 모르겠습니다 .
나는 주로 VBScript를 사용했기 때문에이 기능의 요점을 이해하지 못합니다.
답변
가지고 다닐 수 있는
파일 경로 조작을 한 번 작성 하면 다양한 플랫폼에서 무료로 작동합니다. 구분 문자가 추상화되어 작업이 더 쉬워집니다.
똑똑한
더 이상 해당 디렉토리 경로에 슬래시 가 있는지 여부에 대해 걱정할 필요가 없습니다 . os.path.join
필요한 경우 추가합니다.
맑은
을 사용 os.path.join
하면 파일 경로로 작업중인 코드를 다른 사람들에게 분명하게 알 수 있습니다. 사람들은 코드를 빠르게 스캔하고 본질적으로 파일 경로임을 발견 할 수 있습니다. 직접 구성하기로 결정하면 독자가 코드의 실제 문제를 찾는 데 방해가 될 수 있습니다. “흠, 일부 문자열 연결, 대체.이 파일 경로 또는 무엇입니까? Gah! 왜 그가 사용하지 않았 os.path.join
습니까?” 🙂
답변
‘\’가있는 Windows 및 ‘/’가있는 Unix (Mac OS X 포함)에서 작동합니다.
posixpath의 경우 여기에 간단한 코드가 있습니다.
In [22]: os.path.join??
Type: function
String Form:<function join at 0x107c28ed8>
File: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py
Definition: os.path.join(a, *p)
Source:
def join(a, *p):
"""Join two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded."""
path = a
for b in p:
if b.startswith('/'):
path = b
elif path == '' or path.endswith('/'):
path += b
else:
path += '/' + b
return path
창문은 없지만 ‘\’가 있어야합니다.
답변
OS 독립적입니다. 경로를 C : \ Whatever로 하드 코딩하면 Windows에서만 작동합니다. Unix 표준 “/”로 하드 코딩하면 Unix에서만 작동합니다. os.path.join은 실행중인 운영 체제를 감지하고 올바른 기호를 사용하여 경로를 결합합니다.