我有一个朋友,作为他工作的一部分,他必须解决过滤一些原始数据文本文件(实际上是从服务器发送的日志)。现在我建议用python帮助他,到目前为止它并不太复杂。但是,当他告诉我某些数据已经手动添加时,我碰到了一堵砖墙。
所以我的第一个想法是,我可能会创建一个csv文件,这在python中很容易处理,对我的朋友来说看起来像普通的excel。每次新日志到达时,脚本都会将其名称更新为csv文件,我的朋友可以轻松添加更多信息。每一行看起来像这样:
logName ,,,,
剩下的空格留给我的朋友填写,然后他有第二个脚本收集所有数据。但问题是 - 当你用excel打开一个csv文件时,你无法使用python更新它。因此,每当他想要更新时,他需要打开保存并关闭,打开保存并关闭。这很头疼。
现在我知道这是excel的问题,而不是csv本身,因为如果我使用sublime读取文件,它会在脚本运行后进行实时更新。 Excel有一个共享选项,但它保留用于xls文件而不是csv。
我试着在互联网上寻找并发现了一些非常复杂的东西,而且它看起来似乎不可能。有任何想法吗?
答案 0 :(得分:0)
如果我要说的话,我会创建一个Access数据库并让你的Python脚本插入并更新其中的数据,然后让你的朋友通过Access自己做手册。
请查看PyODBC了解如何执行此操作 - 此处有许多问题,其中包含连接到Access数据库的示例。
答案 1 :(得分: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)