Python 进入微软 Excel

Python into Microsoft Excel

我是 python 的新手,我需要从 python 获取一些信息和数据到 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()    

我需要将上面列出的两个变量放入一个 excel 文档中,并将它们作为标题和名称,并且 class_names 需要不断添加到相应的列下方。然而,什么也没有发生,并且出现了错误。

这个问题现在已经得到解答,但是对于那些为我的问题而苦苦挣扎并想学习如何做的人,基本上我想使用 import csv 函数,从 python 测试一个 excel 文档,变量名在顶部,相应的值在正确的变量名下输出。希望这已经消除了所有混淆。

如果您希望生成本机 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")

这将为您提供以下内容:

这是使用 Python 2.7.9

测试的

根据您更新后的问题,希望以下内容对您有所帮助。您似乎开始设计某种测验,因此您需要花一些时间来设计您想问的问题。

需要注意一点,在处理文件时使用Python的with语句更容易,这样会自动确保最后调用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

测试

我只能猜测,您看到了什么错误,但第一个可能的问题是 if class_name == ('1') 子句中的缩进损坏。

其次:您正在尝试附加到 scoreRecords,但未定义 scoreRecords

第三步:在 scoreWriter 上使用 writerow 方法将 namescore 变量的列表写入文件。