大家好,我是 星源,一个正在自学 Python 的 19 岁编程小白 🤓。今天我们继续来学习 处理 CSV 文件和 JSON 数据!
📌 今日学习内容
👉 “我们把 习题答案全部过一遍,再亲手跑一遍 Excel → CSV 实战项目!”
✨ 知识点讲解
📑习题 答案
| 题号 | |
|---|
| 1 | 在 Excel 中,电子表格的值可以是字符串以外的数据类型,单元格可以有不同的字体、大小或颜色设置,单元格可以有不同的宽度和高度,相邻的单元格可以合并,可以嵌入图像和图表。 |
| 2 | 传入一个 File 对象,通过调用 open() 获得。 |
| 3 | 对于 Reader 对象,File 对象需要以读二进制模式('rb')打开;对于 Writer 对象,需要以写二进制模式('wb')打开。 |
| 4 | writerow() 方法。 |
| 5 | delimiter 参数改变了分隔一行中单元格所用的字符串;lineterminator 参数改变了分隔行的字符串。 |
| 6 | json.loads() |
| 7 | json.dumps() |
🛠️ 实践项目(
项目标题:Excel 到 CSV 的转换程序
需求
Excel 可以将电子表格保存为 CSV 文件,只要点几下鼠标,但如果有几百个 Excel 文件要转换为 CSV,就需要点击几小时。利用第 12 章的 openpyxl 模块,编程读取当前工作目录中的所有 Excel 文件,并输出为 CSV 文件。一个 Excel 文件可能包含多个工作表,必须为每个表创建一个 CSV 文件。CSV 文件的文件名应该是 <Excel文件名>_<表标题>.csv,其中 <Excel文件名> 是没有扩展名的 Excel 文件名(例如 'spam_data',而不是 'spam_data.xlsx'),<表标题> 是 Worksheet 对象的 title 变量中的字符串。该程序将包含许多嵌套的 for 循环。该程序的框架看起来像这样:
forexcelFileinos.listdir('.'):# Skip non-xlsx files, load the workbook object.forsheetNameinwb.get_sheet_names():# Loop through every sheet in the workbook.sheet=wb.get_sheet_by_name(sheetName)# Create the CSV filename from the Excel filename and sheet title.# Create the csv.writer object for this CSV file.# Loop through every row in the sheet.forrowNuminrange(1, sheet.get_highest_row() +1):rowData= [] # append each cell to this list# Loop through each cell in the row.forcolNuminrange(1, sheet.get_highest_column() +1):# Append each cell's data to rowData.# Write the rowData list to the CSV file.csvFile.close() 提示:
✅ 总结
14.7 习题 7 问 7 答,全部背下来,面试能秒答。
14.8 实践项目 = openpyxl + csv 双剑合璧,4 层嵌套循环,写一次就彻底掌握两大模块。
完成后记得用 提供的 excelSpreadsheets.zip 做回归测试,确保文件名、空行、编码都符合预期。
📢 互动提问
👉 做完项目后,你生成的 CSV 打开有没有中文乱码?你是怎么解决编码问题的?留言区等你分享经验!