Vì nhiều lý do, ứng dụng Python của bạn có thể muốn biết tên người dùng của người dùng đã đăng nhập cùng với một vài chi tiết khác như đường dẫn đến thư mục nhà của họ và tên máy chủ hệ thống của họ. Trong Python, bạn có thể sử dụng Thư viện GetPass để tìm nạp những thứ này. Chạy bên dưới để lấy tên người dùngNhận tên người dùng
import getpass
username = getpass.getuser[]
print[f"Hello {username}"]
Đầu ra
Trên Linux bạn thấy
Điều này cũng sẽ hoạt động trên Windows
Nhận đường dẫn đến thư mục nhà
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
Đầu ra
Trên Linux bạn thấy
Điều này cũng sẽ hoạt động trên Windows
Nhận đường dẫn đến thư mục nhà
import socket
hostname = socket.gethostname[]
print[hostname]
Đầu ra
Trên Linux bạn thấy
Điều này cũng sẽ hoạt động trên Windows
Trên Linux
Tôi đang viết một chương trình trò chuyện cho một mạng cục bộ. Tôi muốn có thể xác định máy tính và lấy tên máy tính đặt người dùng với Python.
Itay grudev
6.8164 Huy hiệu vàng53 Huy hiệu bạc84 Huy hiệu đồng4 gold badges53 silver badges84 bronze badges
Hỏi ngày 24 tháng 11 năm 2010 lúc 21:33Nov 24, 2010 at 21:33
Sử dụng
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
6 và chức năng import os.path
homedir = os.path.expanduser["~"]
print[homedir]
7 của nó. Điều này sẽ nhận được import os.path
homedir = os.path.expanduser["~"]
print[homedir]
8 của máy tính nơi trình thông dịch Python đang chạy:import socket
print[socket.gethostname[]]
người đàn ông thiếc
156K41 Huy hiệu vàng209 Huy hiệu bạc298 Huy hiệu Đồng41 gold badges209 silver badges298 bronze badges
Đã trả lời ngày 24 tháng 11 năm 2010 lúc 21:36Nov 24, 2010 at 21:36
AlexalexAlex
62.5K46 Huy hiệu vàng150 Huy hiệu bạc179 Huy hiệu đồng46 gold badges150 silver badges179 bronze badges
5
Cả hai đều là khá di động:
import platform
platform.node[]
import socket
socket.gethostname[]
Bất kỳ giải pháp nào sử dụng các biến môi trường
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
9 hoặc import socket
hostname = socket.gethostname[]
print[hostname]
0 không thể di động. Ngay cả khi nó hoạt động trên hệ thống của bạn khi bạn chạy nó, nó có thể không hoạt động khi chạy trong các môi trường đặc biệt như Cron.Đã trả lời ngày 24 tháng 11 năm 2010 lúc 21:53Nov 24, 2010 at 21:53
Robertrobertrobert
32.1k8 Huy hiệu vàng52 Huy hiệu bạc72 Huy hiệu đồng8 gold badges52 silver badges72 bronze badges
8
Dù sao thì bạn cũng sẽ tải mô -đun HĐH, vì vậy một đề xuất khác sẽ là:
import os
myhost = os.uname[][1]
Đã trả lời ngày 13 tháng 3 năm 2013 lúc 19:06Mar 13, 2013 at 19:06
mike0042mike0042mike0042
1.7131 Huy hiệu vàng10 Huy hiệu bạc2 Huy hiệu đồng1 gold badge10 silver badges2 bronze badges
9
Thế còn :
import platform
h = platform.uname[][1]
Trên thực tế, bạn có thể muốn có một cái nhìn cho tất cả các kết quả trong
import socket
hostname = socket.gethostname[]
print[hostname]
1
Esailija
Huy hiệu vàng 136K2323 gold badges267 silver badges319 bronze badges
Đã trả lời ngày 2 tháng 1 năm 2012 lúc 10:14Jan 2, 2012 at 10:14
3
import socket
hostname = socket.gethostname[]
print[hostname]
2 và import socket
hostname = socket.gethostname[]
print[hostname]
3 không luôn luôn hoạt động. Trong Cron Jobs và WSDL, tên máy chủ HTTP không được đặt. Sử dụng cái này thay thế:import socket
socket.gethostbyaddr[socket.gethostname[]][0]
Nó luôn luôn [ngay cả trên Windows] trả về một tên máy chủ đủ điều kiện, ngay cả khi bạn xác định một bí danh ngắn trong /etc /máy chủ.
Nếu bạn xác định bí danh trong /etc /máy chủ thì
import socket
hostname = socket.gethostname[]
print[hostname]
4 sẽ trả lại bí danh. import socket
hostname = socket.gethostname[]
print[hostname]
5 làm điều tương tự.Tôi gặp phải một trường hợp những điều trên không hoạt động. Đây là những gì tôi đang sử dụng bây giờ:
import socket
if socket.gethostname[].find['.']>=0:
name=socket.gethostname[]
else:
name=socket.gethostbyaddr[socket.gethostname[]][0]
Đầu tiên, nó gọi gethostname để xem liệu nó có trả lại thứ gì đó trông giống như tên máy chủ hay không, nếu không nó sử dụng giải pháp ban đầu của tôi.
Đã ổn định
2.9232 huy hiệu vàng29 Huy hiệu bạc40 Huy hiệu đồng2 gold badges29 silver badges40 bronze badges
Đã trả lời ngày 8 tháng 5 năm 2012 lúc 15:23May 8, 2012 at 15:23
Tom Ekbergtom EkbergTom Ekberg
2.0491 Huy hiệu vàng13 Huy hiệu bạc8 Huy hiệu đồng1 gold badge13 silver badges8 bronze badges
2
Từ ít nhất là Python> = 3.3:
Bạn có thể sử dụng trường
import socket
hostname = socket.gethostname[]
print[hostname]
6 và tránh sử dụng lập chỉ mục mảng:os.uname[].nodename
Mặc dù, ngay cả tài liệu của OS.Uname cũng đề xuất sử dụng
import socket
hostname = socket.gethostname[]
print[hostname]
4Đã trả lời ngày 2 tháng 4 năm 2018 lúc 12:01Apr 2, 2018 at 12:01
2
Nếu tôi đúng, bạn đang tìm kiếm chức năng ổ cắm.gethostname:
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
0Đã trả lời ngày 24 tháng 11 năm 2010 lúc 21:37Nov 24, 2010 at 21:37
Terminusterminusterminus
13.2k8 Huy hiệu vàng34 Huy hiệu bạc37 Huy hiệu đồng8 gold badges34 silver badges37 bronze badges
import socket
hostname = socket.gethostname[]
print[hostname]
4 có thể làmĐã trả lời ngày 24 tháng 11 năm 2010 lúc 21:38Nov 24, 2010 at 21:38
vpit3833vpit3833vpit3833
7.7412 Huy hiệu vàng24 Huy hiệu bạc25 Huy hiệu Đồng2 gold badges24 silver badges25 bronze badges
Bạn phải thực thi dòng mã này
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
1Và sau đó bạn có thể sử dụng tên để tìm addr:
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
2Đã trả lời ngày 10 tháng 3 năm 2019 lúc 12:30Mar 10, 2019 at 12:30
Trên một số hệ thống, tên máy chủ được đặt trong môi trường. Nếu đó là trường hợp của bạn, mô -đun HĐH có thể rút nó ra khỏi môi trường thông qua OS.GetEnv. Ví dụ: nếu tên máy chủ là biến môi trường chứa những gì bạn muốn, thì đó sẽ nhận được nó:
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
3Cập nhật: Như đã lưu ý trong các bình luận, điều này không phải lúc nào cũng hoạt động, vì không phải môi trường của mọi người được thiết lập theo cách này. Tôi tin rằng vào thời điểm đó, ban đầu tôi đã trả lời điều này, tôi đã sử dụng giải pháp này vì đó là điều đầu tiên tôi tìm thấy trong một tìm kiếm trên web và nó đã hoạt động với tôi vào thời điểm đó. Do thiếu tính di động, có lẽ tôi sẽ không sử dụng điều này bây giờ. Tuy nhiên, tôi đang để lại câu trả lời này cho mục đích tham khảo. FWIW, nó loại bỏ sự cần thiết của các nhập khẩu khác nếu môi trường của bạn có tên hệ thống và bạn đã nhập mô -đun HĐH. Kiểm tra nó - nếu nó không hoạt động trong tất cả các môi trường mà bạn mong đợi chương trình của bạn sẽ hoạt động, hãy sử dụng một trong các giải pháp khác được cung cấp.
Đã trả lời ngày 24 tháng 11 năm 2010 lúc 21:43Nov 24, 2010 at 21:43
GreenmattgreenmattGreenMatt
17,9K7 Huy hiệu vàng51 Huy hiệu bạc76 Huy hiệu đồng7 gold badges51 silver badges76 bronze badges
6
Để nhận tên máy chủ đủ điều kiện, hãy sử dụng socket.getfqdn []
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
4Đã trả lời ngày 11 tháng 11 năm 2020 lúc 2:57Nov 11, 2020 at 2:57
Rishi Bansalrishi BansalRishi Bansal
3,4872 Huy hiệu vàng24 Huy hiệu bạc44 Huy hiệu đồng2 gold badges24 silver badges44 bronze badges
Tôi cần tên của PC để sử dụng trong tệp Pylog Conf của mình và thư viện ổ cắm không khả dụng, nhưng thư viện hệ điều hành là.
Đối với Windows tôi đã sử dụng:Windows I used:
import os.path
homedir = os.path.expanduser["~"]
print[homedir]
5Trong đó defaultValue là một chuỗi để ngăn không cho không được trả lại
James
Huy hiệu vàng 13K557 Huy hiệu bạc81 Huy hiệu đồng5 gold badges57 silver badges81 bronze badges
Đã trả lời ngày 9 tháng 6 năm 2015 lúc 9:50Jun 9, 2015 at 9:50
Bill Kiddbill KiddBill Kidd
1.03211 Huy hiệu bạc13 Huy hiệu đồng11 silver badges13 bronze badges
5