2

別のリストに列の値を出力するように列を取得することができました。ただし、これらの値を保持し、それらを1つずつ使用してAmazonルックアップを実行する必要があります。アマゾンルックアップは問題ではありません。XLRDに一度に1つの値を与えることは問題でした。Pythonで時間を設定する効率的な方法もありますか?タイマーの問題に対して私が見つけた唯一の答えは、プロセスが開始された時間を記録し、そこからカウントすることです。タイマーだけがいいです。この質問は、ここで私がこれまでに行ったことの2つの部分です。

argv [1]を使用してxlrdでスプレッドシートをロードし、argv[2]を使用して新しいスプレッドシート名にコピーします。argv [3]私はタイマーエンティティである必要がありますが、まだそれほど遠くはありません。

私が試してみました:

import sys
import datetime
import os
import xlrd
from xlrd.book import colname
from xlrd.book import row
import xlwt
import xlutils
import shutil
import bottlenose

AMAZON_ACCESS_KEY_ID = "######"
AMAZON_SECRET_KEY = "####"

print "Executing ISBN Amazon Lookup Script -- Please be sure to execute it python amazon.py input.xls output.xls 60(seconds between database queries)"

print "Copying original XLS spreadsheet to new spreadsheet file specified as the second arguement on the command line."

print "Loading Amazon Account information . . "

amazon = bottlenose.Amazon(AMAZON_ACCESS_KEY_ID, AMAZON_SECRET_KEY)
response = amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")
shutil.copy2(sys.argv[1], sys.argv[2])

print "Opening copied spreadsheet and beginning ISBN extraction. . ."
wb = xlrd.open_workbook(sys.argv[2])

print "Beginning Amazon lookup for the first ISBN number."
for row in colname(colx=2):
    print amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")

私はこれが少し曖昧であることを知っています。column = colname(colx = 2)のようなことを試してみると、列の行に対して実行できます。ヘルプや指示をいただければ幸いです。

4

1 に答える 1

2

colname()コードで使用すると、単に列の名前が返されます(たとえば、名前をオーバーライドしていない限り、デフォルトでは「C」が返されます)。また、colnameの使用は、ワークブックの内容のコンテキスト外です。ロードしているブックの特定のシートを操作し、そのシート内から列の値(この例では2)を参照したいと思いますが、これはある程度正しいと思いますか?

wb = xlrd.open_workbook(sys.argv[2])

sheet = wb.sheet_by_index(0)
for row in sheet.col(2):
        print amazon.ItemLookup(ItemId="row", ResponseGroup="Offer Summaries", SearchIndex="Books", IdType="ISBN")

後者は単なる文字列であり、前者はforループから指定された変数の実際の内容であるため、あなたへの呼び出しを見ると、amazon.ItemLookup()おそらく参照するのrowはなく、参照する必要があると思います。"row"row

于 2012-11-18T11:33:56.797 に答える