标星★公众号 爱你们♥
作者:Goran Aviani
编译:公众号海外部
近期原创文章:
第1部分:CSV文件
CSV文件是由逗号分隔的值文件,其中纯文本数据以表格格式显示。它们可以与任何电子表格程序一起使用,如Microsoft Office Excel、Google Spreadsheets或LibreOffice Calc
CSV文件与其他电子表格文件不同,因为它们不允许保存单元格、列、行或公式。它们的限制是每个文件只允许一个工作表。
写入CSV文件
首先,打开一个新的Python文件并导入Python CSV模块。
CSV模块
CSV模块包含所有内置的必要方法。这些包括:
我们将重点介绍writer,DictWriter和DictReader方法。它们允许你编辑,修改和操作存储在CSV文件中的数据。
在第一步中,我们需要定义文件的名称并将其保存为变量。我们应该对题和数据信息做同样的处理。
现在我们需要创建一个名为writer的函数,它将接受三个参数:header,data和filename。
下一步是修改writer函数,使它创建一个文件来保存来自header和数据变量的数据。
我们创建了第一个名为imdb_top_4.csv的CSV文件。使用你首选的电子表格应用程序打开此文件,会看到如下内容:
如果你选择在其他应用程序中打开文件,结果可能是这的:
更新CSV文件
如果要更新这个文件,你应该创建一个名为updater的新函数,它只接受一个名为filename的参数。
这个函数首先打开filename变量中定义的文件,然后将从文件中读取的所有数据保存在名为readData的变量中。第二步是对新值进行硬编码,并将其置于readData [0] ['Rating']。
函数中的最后一步是通过添加一个新的参数update来调用writer函数,该参数更新将告诉函数你正在执行更新。
csv.DictReader的官方Python文档中有更多解释:
https://docs.python.org/3/library/csv.html#dialects-and-formatting-parameters
若要writer处理新参数,需要在定义writer的任何地方添加一个新参数。回到最初调用writer函数的地方,添加“write”作为一个新参数:
就在writer函数下面调用updater并将filename参数传递给它:
现在,你需要修改writer函数,以接受一个名为option的新参数:
从现在开始,我们希望收到writer函数的两个不同选项(写入和更新)。因此,我们应该添加两个if语句来支持这个新功能。函数 “if option == “write:” 下的第一部分你已经知道了。你只需要添加 “elif option == “update”:,代码:
第2部分:xlsx文件
使用Python3和openpyxl库构建了这个解决方案。之所以选择openpyxl,是因为可以它可以创建工作表、加载、更新、重命名和删除工作表的完整表现。它还允许我们读或写行和列,合并或取消合并单元格或创建Python excel图表等。
代码,代码再这里:
https://github.com/GoranAviani/Manipulate-Excel-spreadsheets
Openpyxl
1、Workbook是Openpyxl中Excel文件的名称。
2、工作簿由工作表组成(默认为1个工作表),表格以其名称引用。
3、表格(sheet)由数字1开始的行(水平线)和从字母A开始的列(竖线)组成。
Openpyxl有很好的文档,看这里:
https://openpyxl.readthedocs.io/en/stable/
作者还开发一个很有趣的在线应用程序:
https://tools.incodaq.com/
挺实用。大家可以自己试试。
点击join,然后就变成这样了。