0

我试图通过让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
4

1 回答 1

2

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

name = random.choice(contents)

我想,这正是你想要的。此外,它的优点是如果contents无论出于何种原因为空,都会抛出异常。


更新:

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

于 2013-02-18T18:03:54.567 回答