>>> from env_helper import info; info()
待更新
4.6. 实践项目¶
作为实践,编程完成下列任务。
4.6.1. 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
循环。 该程序的框架看起来像这样:
import os
for excelFile in os.listdir('.'):
# Skip non-xlsx files, load the workbook object.
for sheetName in wb.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.
for rowNum in range(1,sheet.get_highest_row() +1):
rowData = [] # append each cell to this list
#Loop through each cell in the row.
for colNum in range(1, sheet.get_highest_column() + 1):
# Append each cell's data to rowData.
# Write the rowData list to the CSV file.
csvFile.close()
从 http://nostarch.com/automatestuff/ 下载ZIP 文件
excelSpreadsheets.zip
,将这些电子表格解
压缩到程序所在的目录中。可以使用这些文件来测试程序。
4.6.2. 小结¶
CSV
和JSON
是常见的纯文本格式,用于保存数据。
它们很容易被程序解析,同时仍然让人可读,所以它们
经常被用作简单的电子表格或网络应用程序的数据。
csv
和json
模块大大简化了读取和写入CSV
和JSON
文件的过程。
前面几章教你如何利用Python从各种各样的文件格式的 解析信息。一个常见的任务是接受多种格式的数据,解析它, 并获得需要的特定信息。这些任务往往非常特别,商业软件 并不是最有帮助的。通过编写自己的脚本,可以让计算机处 理大量以这些格式呈现的数据。
在第15章,你将从数据格式中挣脱,学习如何让程序与你 通信,发送电子邮件和文本消息。
4.6.3. 习题¶
哪些功能是
Excel
电子表格有,而CSV
电子表格没有?
向
csv.reader()
和csv.writer()
传入什么, 来创建Reader
和Writer
对象?对于
Reader
和Writer
对象,File
对象需要以什么模式打开?什么方法接受一个列表参数,并将其写入
CSV
文件?delimiter
和lineterminator
关键字参数有什么用?什么函数接受一个
JSON
数据的字符串, 并返回一个Python
数据结构?什么函数接受一个
Python
数据结构, 并返回一个JSON
数据的字符串?