2015-03-01 2 views
0

У меня есть список имен команд в txt-файле. Я хочу открыть список, перетасовать имена, а затем отобразить результат на экране. Пробовали код ниже с небольшим успехом.Импортировать текстовый файл, перемешать содержимое, отображать на экране

def shuffle2(): 
    with open("teams.txt", mode="r", encoding="utf-8") as myFile: 
     lines = random.shuffle(myFile.readline()) 
    print(lines) 

ответ

2

random.shuffle() перемешивает список вместо.

Читайте строки в списке, а затем перетасовать:

def shuffle2(): 
    with open("teams.txt", mode="r", encoding="utf-8") as myFile: 
     lines = list(myFile) 
    random.shuffle(lines) 
    print(lines) 

Обратите внимание, что строки будут напечатаны как один длинный список; если вы хотите, чтобы напечатать их на отдельных строках, используйте синтаксис в *args вызова, чтобы передать линии как отдельные aguments к print() и установите разделитель в пустую строку:

print(*lines, sep='') 

Как каждая строка в lines все еще будет включать (\n), это просто напечатает все содержимое lines на экране с этими разделителями строк, гарантируя, что каждая запись будет выписана на их собственной линии.

+0

Массивное спасибо! Отлично! И идея отдельных строк была хорошей! Еще раз спасибо! – CycloneSteve

0

Вам необходимо перетасовать все строки перед их отображением на экране.

import random 

with open("teams.txt", mode="r", encoding="utf-8") as myFile: 
    lines = myFile.readlines() 

random.shuffle(lines) 

print (lines) 
+0

Спасибо @manan !! – CycloneSteve

 Смежные вопросы

  • Нет связанных вопросов^_^