私はちょうどPythonを学び始めており、xlwingsを使ってExcelスプレッドシートに書き出しています。私は本当にコーディングに新しい(これは私の最初の質問です)ので、これはちょっとした質問かもしれませんが、コメントは本当に感謝しています。xlwingsをexcelで使用すると、これらの2つのアプローチのうちどれが最も早く優先されますか?
私はウェブサイトのページソース(セレンと美しいスープを使用しています)を読んで、価格や重量などの製品に関するいくつかの情報を入手しています。私はこれらの値をExcelのセルに書きます。
は、私がこれを行うための2つの方法があり - 最初は、関数を実行し、次の機能に移動する前に秀でるために値を書き込みます(これらは、メインスクリプトの抜粋です
- 両方の方法は、正常に動作します)
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
私はこれを行うための好ましい方法は不思議でしたか?私はスピードの違いはほとんど気付きませんでしたが、私のラップトップは非常に遅いので、1つのアプローチがベストプラクティスと見なされたら、使用するURLの数を増やすことになります。
ご協力いただきありがとうございます。
こんにちは、アドバイスありがとうございます!私は今リストのことを学んでいるので、最終的な書き込みには、それぞれのセルが順番に書かれているのではなく、範囲に書き込まれたリストを使用するように、すべてを並べ替えます。 NumPyとPandaについては、私が言及したようにいくつかの宿題をする必要がありますが、それらはまだ使われていません。もう一度ありがとう、リチャード。 – QBG