파이썬에서 홈 디렉토리를 얻는 방법?


934

현재 로그온 한 사용자의 홈 디렉터리 위치를 확인해야합니다. 현재 Linux에서 다음을 사용하고 있습니다.

os.getenv("HOME")

그러나 이것은 Windows에서는 작동하지 않습니다. 이를 수행하는 올바른 크로스 플랫폼 방법은 무엇입니까?


2
이것은 python을 사용하여 실제 사용자 홈 디렉토리를 찾는 방법 의 중복으로 표시 되었지만이 답변은 Python 3에서 작동하고 이전 답변은 그렇지 않기 때문에 다시 열기로 투표했습니다.
Dour High Arch

답변:


1677

os.path.expanduser 를 사용하고 싶습니다 .
이렇게하면 모든 플랫폼에서 작동합니다.

from os.path import expanduser
home = expanduser("~")

당신이 경우 파이썬 3.5 당신이 사용할 수있는 pathlib.Path.home을 () :

from pathlib import Path
home = str(Path.home())

48
사용자가 Windows의 도메인에 로그온하고 Active Directory에 프로필 홈 폴더가 설정되어있는 경우 로컬 홈 디렉터리 대신 매핑 된 네트워크 폴더를보고합니다
scape

7
pathlib.Path.home()Python3.5 이후 (에서 사용할 수 docs.python.org/3/library/pathlib.html#pathlib.Path.home )
이반 드 파스 센테노

9
이 질문에서 아무도 언급하지 않은 이유가 궁금하지만 다른 사용자의 홈 디렉토리가 어디에 있는지 알고 싶다면을 사용할 수 있습니다 os.path.expanduser('~username'). 하지만 아마도 Linux에만 적용됩니다.
Max

2
@Dipayan 아니, 그것은 pathlib의 Python 2 백 포트입니다. Python 3의 경우 pathlib가 정확합니다.
Haystack 19

2
결과는 동일합니다. 일반적으로 pathlib로 작업하는 경우 pathlib 솔루션을 선호 할 수 있습니다 (및 호출 생략 str). 경로를 문자열로만 원하면 둘 다 동일하게 수행합니다.
Niklas Mertsch

-19

다음은 리눅스 방식으로 cd .. 대신 사용해야하는 경우 참고 :( 하위 디렉토리에있는 경우 해당 디렉토리로 이동합니다)


4
이것은 이전 디렉토리로 변경됩니다. 잘못된 질문을보고 계십니까?
TheTechRobo36414519

1
나는 OP가 파이썬 스크립트에서 작동하는 것을 찾고 있다고 생각하며 그 명령은 사용자 홈 디렉토리가 아닐 수도있는 cwd의 부모 디렉토리로 이동합니다.
Benjamin Goodacre

나는 이것이 잘못된 질문에 대한 답을 얻었습니다. 그러나 그것은 많은 수의 반대표입니다 – 새 포스터에, 그 이하도 아닙니다 ...
rodrigo-silveira
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.