2010-10-26 42 views
530

Tôi cần lấy vị trí của thư mục chính của người dùng đã đăng nhập hiện tại. Hiện tại, tôi đã sử dụng những điều sau trên Linux:Cách lấy thư mục chính bằng Python?

os.getenv("HOME") 

Tuy nhiên, điều này không hoạt động trên Windows. Cách đa nền tảng chính xác để làm điều này là gì?

Trả lời

927

Bạn muốn sử dụng os.path.expanduser. Điều này sẽ đảm bảo nó hoạt động trên tất cả các nền tảng

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

Nếu bạn đang ở trên Python 3.5+ bạn có thể sử dụng pathlib.Path.home():

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

cần lưu ý rằng nếu người dùng đang đăng nhập vào một miền trên cửa sổ và có thư mục nhà hồ sơ của họ được đặt trong thư mục hoạt động sau đó điều này sẽ báo cáo rằng thư mục mạng được ánh xạ thay vì thư mục nhà địa phương – scape

+4

@ dcolish: funny mà ai đó gọi là 'lazy' đã đi thêm dặm .. – Claudiu

+2

@dcolish: Hmm nó không chỉ là , ít nhất là cho tôi. Sẽ khó khăn hơn nhiều khi quét một số văn bản không mã hóa thông thường và sau đó sử dụng nó trong chương trình của tôi. Tôi có thể ít nhất là theo liên kết và xem những gì nó nói ở đó. Nhưng ngay cả một ví dụ nhỏ, trong một khối mã, làm cho nó ngay lập tức rõ ràng: "đây là điều bạn đang tìm kiếm!" và tôi có thể đi và ngay lập tức kiểm tra nó tại một REPL trăn. Hài hước như thế nào chỉ là một sự khác biệt định dạng đơn giản sẽ làm điều đó ... yêu thích của tôi là khi ví dụ thực sự là một phiên REPL – Claudiu

Các vấn đề liên quan