2017-11-18 23 views
-1

私は、.txtファイルの行がランダムな順序で取得するプログラムを作りたいと思っています。txtファイルの行をランダムな順序で配置します。

これは私のコードでは、これまでのところです:

diction = {} 
def selecteer_random_elftal(): 
    lijnen = open("bronmateriaal\\Spelers.txt").readlines() 
    key = 0 
    while lijnen != "": 
     diction[key] = lijnen 
     key =+ 1 
    print("{0}: {1}".format(diction[key],diction[lijnen])) 
selecteer_random_elftal() 

私はこれを行うと、私は結果を取得しないが、私は理由を理解していませんか?

事前にお手数をおかけしていただきありがとうございます。

+1

'lijnenしばらく= "":!' - あなたがループ内で 'linjen'を変更しないことを考えると、これは起動しませんまたは終了することはありませんどちらか。 'readlines'が文字列を返さないとすれば、私は後者を言うでしょう。 – jonrsharpe

答えて

0

random.shuffle()を使って、すべての行のリストを渡すのはどうですか?例えば

import random 

with open('input.txt') as f_input: 
    lines = f_input.read().splitlines() 
    random.shuffle(lines) 
    print '\n'.join(lines) 
0

ファイルが空でない場合、lijnenは常にnullではないためです。

したがって、この条件while lijnen != "":は常にこのように、あなたのプログラムはwhileループから出てくることは決してありません

while True: 

に同一視されます。だから、結果はありません!

おそらく、プログラムを実行したままにしておくと、システムにリソース(または何か)が不足する可能性があります。

関連する問題