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 に答える