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
方法将 name
和 score
变量的列表写入文件。
我是 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
方法将 name
和 score
变量的列表写入文件。