作者: 藤岡和夫
日時: 2002/8/15(15:32)
On Thu, 15 Aug 2002 15:23:31 +0900
藤岡和夫 <kazuf@...> さんwrote:

>  FGALTSのPythonの会議室で質問が出ていて、毎月の商品の売上の(毎月の商品
> が異なる)テキストデータを統合してExcelに読み込ませ解析に使いたい。スクリ
> プトをPythonで書きたいとのこと。商品名をキーにしてデータを統合するという
> スクリプトをPerlで書いたのですが、やはりPythonを使おうとしているのにまず
> いかなと書き始めたのです。お蔭様で大変勉強になりました。ありがとうござい
> ました。

 ついでにもう一つ質問。最終的に次のようなスクリプトなのですが、

import string
goodss = ['goods1', 'goods2', 'goods3']
files = ['2002-04.txt', '2002-05.txt']
uriage = {}
u_data = {}
buffer = {'goods1':"",'goods2':"",'goods3':""}
files.sort()
for name in files:
        file = open(name, "r")
        while 1:
                line = file.readline()
                if not line: break
                [goods, num] = string.split(line)
                uriage[goods] = num
        file.close()
        goodss.sort()
        for goods in goodss:
                if goods in uriage:
                        u_data[goods] = buffer[goods] + "\t" + uriage[goods]
                else:
                        u_data[goods] = buffer[goods] + "\t0"
                buffer[goods] = u_data[goods]
        uriage = {}
u_datakeys = u_data.keys()
u_datakeys.sort()
for goods in u_datakeys:
        print goods + u_data[goods]

 Perlなら、

u_data{goods} .= "\t" . uriage{goods}

のように簡単に書ける変数にデータを追加する部分に一時的に記憶させる配列
bufferを使っているのですが、他に良い方法はないでしょうか。

藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/