Панд может быть проще для чтения в CSV-файлах в DataFrame
, но если вы хотите перейти с csv
:
Каждая строка, которую вы читаете в array.append(row)
имеет две колонки.Чтобы получить только второй столбец, измените код так, чтобы он читался как array.append(row[1])
для подстановки в правильный столбец.
На самом деле array
будет списком вопросов, а для получения случайного вопроса вам потребуетсячтобы выбрать только один элемент из списка:
i = random.randint(1,3)
question = array[i]
Обратите внимание, что я должен быть между 1 и количеством вопросов, потому что первая запись в array
будет «вопросами»,Название столбца.Для этого мы можем использовать i = random.randint(1, len(array) - 1)
, который может обрабатывать разное количество вопросов.
Полный рабочий код:
def QuestionGenerator():
questionlist_file = open('StudentNames&Questions.csv')
reader = csv.reader(questionlist_file)
rownum=0
array=[]
for row in reader:
# Check to make sure the question cell is not blank
if row[1] != '':
# Add only the second column to list
array.append(row[1])
rownum=rownum+1
# Select a random question from the list
i = random.randint(1,len(array) - 1)
question = array[i]
return question