>>> from env_helper import info; info()
待更新

4.6. 实践项目

作为实践,编程完成下列任务。

4.6.1. ExcelCSV 的转换程序

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. 小结

CSVJSON是常见的纯文本格式,用于保存数据。 它们很容易被程序解析,同时仍然让人可读,所以它们 经常被用作简单的电子表格或网络应用程序的数据。 csvjson模块大大简化了读取和写入CSVJSON文件的过程。

前面几章教你如何利用Python从各种各样的文件格式的 解析信息。一个常见的任务是接受多种格式的数据,解析它, 并获得需要的特定信息。这些任务往往非常特别,商业软件 并不是最有帮助的。通过编写自己的脚本,可以让计算机处 理大量以这些格式呈现的数据。

在第15章,你将从数据格式中挣脱,学习如何让程序与你 通信,发送电子邮件和文本消息。

4.6.3. 习题

  1. 哪些功能是Excel电子表格有,而CSV电子表格没有?

  • csv.reader()csv.writer()传入什么, 来创建 ReaderWriter 对象?

  • 对于ReaderWriter对象, File对象需要以什么模式打开?

  • 什么方法接受一个列表参数,并将其写入CSV文件?

  • delimiterlineterminator关键字参数有什么用?

  • 什么函数接受一个JSON数据的字符串, 并返回一个Python数据结构?

  • 什么函数接受一个Python数据结构, 并返回一个JSON数据的字符串?