我试图通过让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
答案 0 :(得分:2)
random
模块提供了从序列中选择随机元素的功能:
name = random.choice(contents)
我认为这确实符合您的要求。此外,它的优点是,如果contents
因任何原因为空,则会抛出异常。
更新
顺便说一句,您不需要调用rnd.close()
,因为您在首先打开文件时使用了上下文管理器(with open(...) as rnd:
) - 当您离开时它将自动调用with
子句的范围。