2016-01-10 4 views
0

Я новичок в python, и мне нужно получить некоторую информацию и данные из python в документ excel.Python в Microsoft Excel

import csv 
class_name = input("What class are you in?") 
name = input("Name") 

score = 0 
print ("What's 1 + 2") 
answer = int(input("What's the correct answer?")) 
if answer == 3: 
    print("Congratulations!") 
    score = score + 1 
else: 
    print("Wrong answer") 

if class_name == ('1'): 
scoreRecords.append([name,score]) 
csvfile = open('Class.1 records.csv','a',newline='') 
scoreWriter = csv.writer(csvfile) 
scoreWriter.writerows(coreResults) 
csvfile.close()  

мне нужно получить две переменные, перечисленные выше в документ первенствовать с ними, необходимо постоянно быть добавлены ниже соответствующего столбца заголовков и имена и class_names. Однако ничего не происходит, и появляются ошибки.

Вопрос теперь был дан ответ, но кому-либо, кто борется с тем, что я просил, и хотел узнать, как это сделать, в основном я хотел использовать функцию импорта csv, чтобы переместить три переменные из викторины python на excel документ с именами переменных вверху, а соответствующие значения выводятся под правильным именем переменной. Надеюсь, теперь это очистило любую путаницу.

+0

см. Это: http://www.python-excel.org/ – Arman

+3

Добро пожаловать в переполнение стека! так как это ваш первый вопрос, важно знать, что мы здесь, чтобы помочь, а не делать домашнее задание. Пожалуйста, обновите свой вопрос своей попыткой решить эту проблему, и другие пользователи предоставят ваши отзывы об улучшении этого решения вашей проблемы. Когда вы обнаружите, что один ответ вам удовлетворит, нажмите галочку на стороне ответа. Повеселись. – fixmycode

+0

Вы пытаетесь ввести несколько записей? Также откуда взялась оценка? –

ответ

0

Для создания собственных файлов xlsx вам понадобится установить соответствующий модуль Excel. Следующие должны помочь вам начать работу, если вы решите использовать openpyxl для создания файла xlsx:

from openpyxl import Workbook 

class_name = raw_input("What class are you in? ") 
name = raw_input("Name ") 

wb = Workbook() 
ws = wb.active 

ws.cell(row=1, column=1, value="Class name") 
ws.cell(row=1, column=2, value="Name") 

ws.cell(row=2, column=1, value=class_name) 
ws.cell(row=2, column=2, value=name) 

wb.save("output.xlsx") 

Это даст вам следующее:

Excel output example

Это была протестирована с использованием Python 2.7. 9


На основании вашего обновленного вопроса, надеюсь, следующее поможет вам. Кажется, вы начинаете разрабатывать какую-то викторину, поэтому вам нужно будет потратить некоторое время на разработку тех вопросов, которые вы хотели бы задать.

Одна вещь, чтобы отметить, что проще использовать with заявление Python, когда дело с файлами, это будет автоматически гарантировать, что close вызывается в конце:

import csv 
import os 

with open('Class.1 records.csv', 'w', newline='') as f_output: 
    csv_output = csv.writer(f_output) 

    # Write the csv header row 
    csv_output.writerow(['Class name', 'Name', 'Score']) 

    score = 0 

    while True: 
     class_name = input("What class are you in? (Or type q to quit) ") 

     if class_name == 'q': 
      break 

     name = input("Name: ") 

     print ("What's 1 + 2") 
     answer = int(input("What's the correct answer? ")) 

     if answer == 3: 
      print("Congratulations!") 
      score = score + 1 
     else: 
      print("Wrong answer") 

     csv_output.writerow([class_name, name, score]) 

Так сценарий будет работать, например, следующим :

What class are you in? (Or type q to quit) 9 
Name: Fred 
What's 1 + 2 
What's the correct answer? 0 
Wrong answer 
What class are you in? (Or type q to quit) 8 
Name: Wilma 
What's 1 + 2 
What's the correct answer? 3 
Congratulations! 
What class are you in? (Or type q to quit) q 

Давать вам следующее содержание CSV файл:

Class name,Name,Score 
9,Fred,0 
8,Wilma,1 

Протестировано с использованием Python 3.4.3

+0

Большое спасибо, извините, если мой предыдущий вопрос был неопределенным, однако теперь я отредактировал его, чтобы узнать, можно ли это сделать с помощью импорта csv. Моя текущая попытка также находится в новом редактировании, однако я не могу заставить его работать. Если вы знаете, как это сделать, используя csv, было бы очень полезно, если бы вы могли сообщить мне об этом. Спасибо, жаль, если мой вопрос был расплывчатым. – Randall32

0

Я могу только догадываться, какие ошибки вы видите, но первая вероятная проблема - сломанный отступ в вашем предложении if class_name == ('1').

Во-вторых: вы пытаетесь добавить к scoreRecords, но scoreRecords не определен.

В-третьих: Используйте метод writerow на scoreWriter, чтобы написать список ваших name и score переменных в файл.

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