获得运行python脚本的Windows电脑的名字?
基本上,我的networking上有几台Windows电脑,将运行一个python脚本。 应该在脚本中使用一组不同的configuration选项,具体取决于运行此脚本的计算机。
我将如何获得在python脚本中的计算机名称?
假设这个脚本运行在名为DARK-TOWER的计算机上,我想写下这样的内容:
>>> python.library.get_computer_name() 'DARK-TOWER'
有我可以使用的标准或第三方库吗?
原来有三种select(包括之前已经回答的两个):
>>> import platform >>> import socket >>> import os >>> platform.node() 'DARK-TOWER' >>> socket.gethostname() 'DARK-TOWER' >>> os.environ['COMPUTERNAME'] 'DARK-TOWER'
import socket socket.gethostname()
从https://mail.python.org/pipermail/python-list/2006-April/397494.html
import os os.getenv('COMPUTERNAME')
由于python scrips确实在Windows系统上运行,所以应使用Win32 API GetComputerName或GetComputerNameEx
您可以获取完全合格的DNS名称或NETBIOS名称,或各种不同的东西。
import win32api win32api.GetComputerName() >>'MYNAME'
要么:
import win32api WIN32_ComputerNameDnsHostname = 1 win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname) >> u'MYNAME'
Eric Carr说你可以使用这三个变种。
我更喜欢一起使用它们:
def getpcname(): n1 = platform.node() n2 = socket.gethostname() n3 = os.environ["COMPUTERNAME"] if n1 == n2 == n3: return n1 elif n1 == n2: return n1 elif n1 == n3: return n1 elif n2 == n3: return n2 else: raise Exception("Computernames are not equal to each other")
在开发交叉应用程序时,我更喜欢它;)
我敢打赌, gethostname将工作得很好。