gpt4 book ai didi

python - 将 xlwings 与 Excel 结合使用,这两种方法中哪一种最快/首选?

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:16 29 4
gpt4 key购买 nike

我刚刚开始学习 Python,正在使用 xlwings 写入 Excel 电子表格。我对编码非常陌生(这是我的第一个问题),所以这可能是一个简单的问题,但任何评论将不胜感激。

我正在阅读一个网站的页面源代码(使用 selenium 和 beautiful soup)来获取有关产品的一些信息,例如价格和重量。然后我将这些值写入 Excel 中的单元格。

我有两种方法可以做到这一点 - 第一种方法运行一个函数,然后将值写入 Excel,然后再继续执行下一个函数:

(这些是主脚本的摘录 - 两种方法都可以)

   while rowNum < lastRow + 1:    

urlCellRef = (rowNum, colNum)
url = wb.sheets[0].range(urlCellRef).value

# Parse HTML with beautiful soup
getPageSource()

# Find a product price field value within HTML
getProductPrice()
itemPriceRef = (rowNum, colNum + 1)
# Write price value back to Excel sheet
wb.sheets[0].range(itemPriceRef).value = productPrice

getProductWeight()
itemWeightRef = (rowNum, colNum + 2)
wb.sheets[0].range(itemWeightRef).value = productWeight

getProductQuantity()
itemQuantityRef = (rowNum, colNum + 4)
wb.sheets[0].range(itemQuantityRef).value = productQuantity

getProductCode()
prodCodeRef = (rowNum, colNum + 6)
wb.sheets[0].range(prodCodeRef).value = productCode


rowNum = rowNum + 1

第二个运行所有函数,然后一次性将每个存储的值写入 Excel:

   while rowNum < lastRow + 1:    

urlCellRef = (rowNum, colNum)
url = wb.sheets[0].range(urlCellRef).value


getPageSource()
getProductPrice()
getProductWeight()
getProductQuantity()
getProductCode()


itemPriceRef = (rowNum, colNum + 1)
wb.sheets[0].range(itemPriceRef).value = productPrice

itemWeightRef = (rowNum, colNum + 2)
wb.sheets[0].range(itemWeightRef).value = productWeight

itemQuantityRef = (rowNum, colNum + 4)
wb.sheets[0].range(itemQuantityRef).value = productQuantity

prodCodeRef = (rowNum, colNum + 6)
wb.sheets[0].range(prodCodeRef).value = productCode


rowNum = rowNum + 1

我想知道,哪种方法是执行此操作的首选方法?我没有注意到太大的速度差异,但我的笔记本电脑速度相当慢,因此如果一种方法被认为是最佳实践,那么我更愿意采用这种方法,因为我将增加将使用的网址数量。

非常感谢您的帮助!

最佳答案

Excel 调用的开销占主导地位。使用 XLWings 时,请尽可能少地写入电子表格。

我发现使用 Range 对象重写整个工作表(或要更改的工作表区域)比编写单个单元格、行或列要快得多。如果我不进行任何繁重的数据操作,我只是使用嵌套列表 - 将子列表视为列或行(为此使用转置选项)是否会更好取决于您如何处理您的列表数据。如果您正在处理更大的数据集或进行更密集的工作,您可能需要使用 NumPy 数组或 Panda。

关于python - 将 xlwings 与 Excel 结合使用,这两种方法中哪一种最快/首选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758226/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com