使用python更改Linux主机名

时间:2013-02-18 18:00:05

标签: python linux random text-files hostname

我试图通过让python程序从文件中随机选择一个名称然后将其设置为主机名来更改linux主机名。该代码仅在随机数值为1时有效。我做错了什么?我正在使用的代码如下。

import random
import os
import socket

contents=[]

with open("/root/Desktop/names.txt") as rnd:
    for line in rnd:
        line=line.strip()
        contents.append(line)
name = contents[random.randint(0,len(contents)-1)]
rnd.close()
name = "hostname -b "+name
os.system(name)
hostname = socket.gethostname()
print "Hostname:", hostname

1 个答案:

答案 0 :(得分:2)

random模块提供了从序列中选择随机元素的功能:

name = random.choice(contents)

我认为这确实符合您的要求。此外,它的优点是,如果contents因任何原因为空,则会抛出异常。


更新

顺便说一句,您不需要调用rnd.close(),因为您在首先打开文件时使用了上下文管理器(with open(...) as rnd:) - 当您离开时它将自动调用with子句的范围。