我在names.csv
文件中有一些名字。现在,我要向控制台和一个新的winner.csv
文件输出(获奖者的)6个随机名称。
我已经尝试过不同的for循环,但是以某种方式我无法使其工作。但是它只有1个输出。
import csv
import random
winners = []
with open('names.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
chosen_row1 = random.choice((list(reader)))
winners.append(chosen_row1[0])
print(chosen_row1[0])
with open('winner.csv', 'w', newline='', encoding='utf-8') as csvfile:
winnerwriter = csv.writer(csvfile, delimiter=';', quotechar='"')
winnerwriter.writerow(winners)
我喜欢导出x
个名字。
答案 0 :(得分:0)
尝试一下。它使用random.sample
(返回多个项目)而不是random.choice
,后者仅返回一个项目。
import csv
import random
winners = []
number_of_winners = 0 # number of winners
with open('tester.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
winners.append(row[0])
winner_selection = random.sample(winners, number_of_winners)
with open('winner.csv', 'w', newline='', encoding='utf-8') as csvfile:
winnerwriter = csv.writer(csvfile, delimiter=';', quotechar='"')
winnerwriter.writerow(winner_selection)