Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Xlrd、xlwt和xlutils:它们如何协同工作_Python_Xlrd_Xlwt_Xlutils - Fatal编程技术网

Python Xlrd、xlwt和xlutils:它们如何协同工作

Python Xlrd、xlwt和xlutils:它们如何协同工作,python,xlrd,xlwt,xlutils,Python,Xlrd,Xlwt,Xlutils,我试图写入一个现有的xls文件,然后在同一文件的行上迭代,直到找到一个空白 我理解如何通过代码来实现这一点 现在我的问题是,xlrd是否“更新”了它对工作表的引用?或者,我是否必须在任何时候通过“打开工作簿”函数创建一个新的xlrd工作簿对象,然后通过xlwt的“写入和保存”函数保存到该对象中(以读取新工作簿)?xlrd将在您调用打开工作簿()方法时将工作表文件加载到内存。调用open\u workbook()后对工作表文件所做的任何更改不会自动反映在内存中的对象中 如果您查看Github上的x

我试图写入一个现有的xls文件,然后在同一文件的行上迭代,直到找到一个空白

我理解如何通过代码来实现这一点


现在我的问题是,xlrd是否“更新”了它对工作表的引用?或者,我是否必须在任何时候通过“打开工作簿”函数创建一个新的xlrd工作簿对象,然后通过xlwt的“写入和保存”函数保存到该对象中(以读取新工作簿)?

xlrd将在您调用
打开工作簿()方法时将工作表文件加载到内存。调用
open\u workbook()
后对工作表文件所做的任何更改不会自动反映在内存中的对象中

如果您查看Github上的xlrd源代码,特别是,您将看到调用
open\u workbook()
方法时,它会将工作表的内容加载到内存中。这意味着,如果调用
打开工作簿()
,然后更改原始文件,内存中的工作簿将不会反映这些更改


这也是为什么在使用xlwt模块时,必须使用
write()
方法-当修改内存中工作表的内容时,更改不会反映在原始文件中,直到调用
write()

卓越。正是我想要的。我相当肯定;不知道源代码在github上是免费的。