0

仕事の一環として、いくつかの生データ テキスト ファイル (実際にはサーバーから送信されたログ) をフィルタリングする必要がある友人がいます。今度は Python を使って彼を助けることを提案しましたが、今のところそれほど複雑ではありませんでした。しかし、一部のデータを手動で追加する必要があると彼が言ったとき、私はレンガの壁にぶつかりました。

それで、私の最初の考えは、python で扱うのが簡単で、友人にとっては普通の Excel のように見える csv ファイルを作成するかもしれないということでした。新しいログが到着するたびに、スクリプトはその名前を csv ファイルに更新し、友人は簡単に情報を追加できます。すべての行は次のようになります。

ログ名, , , ,

空のスペースは私の友人が埋めるために残され、彼はすべてのデータを収集する 2 番目のスクリプトを持っています。しかし、ここに問題があります。Excel で csv ファイルを開くと、python を使用して更新することはできません。そのため、更新するたびに、保存を開いて閉じる、開いて保存して閉じる必要があります。頭が痛いです。

これはcsv自体ではなくExcelの問題であることがわかりました.sublimeを使用してファイルを読み取ると、スクリプトの実行後にライブ更新されるためです。Excel には共有オプションがありますが、csv ではなく xls ファイル用に予約されています。

インターネットで調べてみたところ、非常に複雑なものがいくつか見つかりました。それは不可能に見えると述べています。何か案は?

4

2 に答える 2

0

または、代わりに、Excel を使用したい場合は、次のような方法を試して、開いている Excel ドキュメントにログ データを挿入することもできます。

import win32com.client
import time

xl = win32com.client.gencache.EnsureDispatch("Excel.Application")                             
xl.Visible = True
Workbook = xl.Workbooks.Add()
Sheets = Workbook.Sheets

for i in xrange(1, 1000):
    Sheets(1).Cells(i, 1).Value = 'LogFile' + str(i)
    #Simulate a delay in the next log being written
    time.sleep(5)
于 2013-03-07T17:09:54.813 に答える
0

私がこれを行う場合、あなたが言ったことから、Accessデータベースを作成し、Pythonスクリプトにデータを挿入して更新させ、次にAccess自体を介して友人に手動で少し実行してもらいます。

これを行う方法については、PyODBCを参照してください。ここには、Access データベースへの接続の例を含む多くの質問があります。

于 2013-03-07T16:58:23.663 に答える