会社のデータベースのエクスポートからCSVを解析する作業をしています。これはスリム化されたバージョンで、約15列あり、実際のCSVには400列を超えるデータがあります(すべて必要)。以下は完全に機能します:
inv = csv.reader(open('inventory_report.txt', 'rU'), dialect='excel', delimiter="\t")
for PART_CODE,MODEL_NUMBER,PRODUCT_NAME,COLOR,TOTAL_ONHAND,TOTAL_ON_ORDER,TOTAL_SALES,\
SALES_YEAR_TO_DATE,SALES_LASTYEAR_TO_DATE,TOTAL_NUMBER_OF_QTYsSOLD,TOTAL_PURCHASES,\
PURCHASES_YEAR_TO_DATE,PURCHASES_LASTYEAR_TO_DATE,TOTAL_NUMBER_OF_QTYpurchased,\
DATE_LAST_SOLD,DATE_FIRST_SOLD in inv:
print ('%-20s %-90s OnHand: %-10s OnOrder: %-10s') % (MODEL_NUMBER,PRODUCT_NAME,\
TOTAL_ONHAND,TOTAL_ON_ORDER)
すでにお分かりのように、CSVの行の各項目に「for」ループに400以上の名前が付加されている場合、読むのは非常に困難です。どんなに面倒でも、この方法で私が求めている出力にアクセスできるのは非常に便利です。特定のアイテムを簡単に取得し、POSデータベースですでに使い慣れている一般名の範囲内で計算を実行できます。
私はこれをもっと読みやすくしようとしています。forループでこれらすべての名前のリストを定義できるが、計算を行って出力を出力するときに名前でそれらを呼び出すことができる方法を見つけようとしています。
何かご意見は?