我的网络上有几台 Windows 计算机将运行一个 Python 脚本。根据运行此脚本的计算机,脚本中应使用一组不同的配置选项。
我如何在 Python 脚本中获得这个计算机名称?
让我们假设这个脚本运行在一台名为 DARK-TOWER 的计算机上,我想这样写:
>>> python.library.get_computer_name() 'DARK-TOWER'
有没有一个标准的或第三方的图书馆,我可以使用?
我打赌 地名会很好用的。
由于 python 脚本肯定是在 Windows 系统上运行的,因此应该使用 Win32API获取计算机名称或 获取计算机名称
您可以获得完全限定的 DNS 名称,或 NETBIOS 名称,或各种不同的东西。
import win32api win32api.GetComputerName() >>'MYNAME'
Or:
import win32api WIN32_ComputerNameDnsHostname = 1 win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname) >> u'MYNAME'
来自 https://mail.python.org/pipermail/python-list/2006-April/397494.html
import os os.getenv('COMPUTERNAME')
import socket socket.gethostname()
原来有三种选择(包括前面已经回答过的两种) :
>>> import platform >>> import socket >>> import os >>> platform.node() 'DARK-TOWER' >>> socket.gethostname() 'DARK-TOWER' >>> os.environ['COMPUTERNAME'] 'DARK-TOWER'
正如 Eric Palakovich Carr 所说,你可以使用这三种变体。
我更喜欢把它们放在一起使用:
def getpcname(): n1 = platform.node() n2 = socket.gethostname() n3 = os.environ["COMPUTERNAME"] if n1 == n2 or n1 == n3: return n1 elif n2 == n3: return n2 else: raise Exception("Computernames are not equal to each other")
我更喜欢在开发跨平台应用程序时使用它;)
import socket pc = socket.gethostname() print pc