使用参数解析模块argparse,在调用方式上控制xlsx表格中计算填写的是各位同学的总分,还是各位同学的平均分(可考虑使用一个bool类型的参数,或者一个字符串类型的参数等),用openpyxl打开xlsx表格
时间: 2024-10-22 07:08:29 浏览: 15
在Python中,可以使用`argparse`模块来处理命令行参数,并结合`openpyxl`库来读取Excel文件。如果你想让用户在运行脚本时选择是否计算总分或平均分,你可以创建一个布尔类型的参数。以下是示例:
```python
import argparse
from openpyxl import load_workbook
# 创建argparse解析器
parser = argparse.ArgumentParser(description="Calculate total or average score from an Excel file")
parser.add_argument('--mode', dest='mode', type=bool, choices=[True, False], required=True,
help="Whether to calculate total (True) or average (False) score")
args = parser.parse_args()
# 检查模式并读取Excel文件
mode = args.mode
workbook = load_workbook('scores.xlsx') # 假设文件名为'scores.xlsx'
sheet = workbook.active
if mode:
total_scores = [sum(row.values()) for row in sheet.iter_rows()]
print("Total scores:")
else:
# 提供列名作为参考,实际操作需要检查数据结构
column_name = 'Score' # 假设分数在'Score'列
averages = [row[column_name].value / len(row) for row in sheet.iter_rows()]
print(f"Average scores ({column_name} column):")
# 输出结果
for i, value in enumerate(total_scores or averages):
print(f"Student {i+1}: {value}")
#
阅读全文