0

我有一个朋友,作为他工作的一部分,他必须过滤一些原始数据文本文件(实际上是从服务器发送的日志)。现在我建议使用 python 帮助他,到目前为止它并不太复杂。然而,当他告诉我必须手动添加一些数据时,我碰了壁。

所以我的第一个想法是我可能会创建一个 csv 文件,它既容易在 python 中处理,又看起来像我朋友的普通 excel。每次新日志到达时,脚本都会将其名称更新为 csv 文件,我的朋友可以轻松添加更多信息。每行看起来像这样:

日志名称, , , ,

留给我的朋友填补空白,然后他有第二个脚本来收集所有数据。但问题是——当你用 excel 打开一个 csv 文件时,你不能用 python 更新它。所以每次他想更新时,他都需要打开保存并关闭,打开保存并关闭。真是头疼。

现在我知道这是 excel 而不是 csv 本身的问题,因为如果我使用 sublime 读取文件,它会在脚本运行后实时更新。Excel 有一个共享选项,但它保留用于 xls 文件而不是 csv。

我尝试在互联网上查找,发现了一些非常复杂的东西,并且说看起来不可能。有任何想法吗?

4

2 回答 2

0

根据您所说的,如果我要这样做,我将创建一个 Access 数据库并让您的 Python 脚本在其中插入和更新数据,然后让您的朋友通过 Access 本身进行手动操作。

查看PyODBC以了解如何执行此操作 - 这里有很多问题以及连接到 Access 数据库的示例。

于 2013-03-07T16:58:23.663 回答
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 回答