【python】【Python】定时查询文件是否修改
本帖最后由 wushaominkk 于 2019-8-13 08:32 编辑本人小白,一直搞手工测试的前几天学妹公司让做一个判断文件的代码练练手,拿来修改了下,源码如下:import time
import xlrd
import threading
def res_one():
z=[]
for i in range(row):
rowdate = worksheet.row_values(i)# i行的list
z.append(rowdate)
return z
def sayhello():
global t
workxls = xlrd.open_workbook("g:/work-6-28.xlsx")
worksheet = workxls.sheet_by_name("Sheet1")
row = worksheet.nrows# 总行数
for i in range(row):
rowdate = worksheet.row_values(i)# i行的list
for a, b in enumerate(rowdate):
# print(i, a, b)# 第i行,a列,数据b
x=res(b,z)
if x:
print("有修改在:" + str(i + 1) + "行" + str(a + 1) + "列") #数列从0开始,加1方便阅读
print("修改值:" + str(z))
print("修改后值:" + str(b))
print("修改时间为:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
z = rowdate #重置修改地方的数据判断为新的数据
else:
pass
t = threading.Timer(1.0, sayhello)
t.start()
def res(b,c):
if (b == c):
return 0
else:
return 1
if __name__ == '__main__':
workxls = xlrd.open_workbook("g:/work-6-28.xlsx")
worksheet = workxls.sheet_by_name("Sheet1")
row = worksheet.nrows# 总行数
z=res_one()
t = threading.Timer(1.0, sayhello)
t.start()
功能是定时检查Excel数据是否有改动。理论上判断有改动后要触发邮件或者其他微信接口等通知。比如bug状态值改成已修复了发信息给测试。
效果图如下: windows有接口 修改了文件会提示的 更适用于表格结构固定的文档,只是其中数据增删改会好些。要是插入或者删除行或者列,反馈的数据可读性就不高了 s1761165854 发表于 2019-8-12 15:56
windows有接口 修改了文件会提示的
感谢指点 xian54966 发表于 2019-8-12 16:03
更适用于表格结构固定的文档,只是其中数据增删改会好些。要是插入或者删除行或者列,反馈的数据可读性就不 ...
感谢指点 s1761165854 发表于 2019-8-12 15:56
windows有接口 修改了文件会提示的
请问下是什么接口,谢谢了 pkclown 发表于 2019-8-12 23:06
请问下是什么接口,谢谢了
使用Qt的话有QFileSystemWatcher类
Win32的话是ReadDirectoryChangesW(hFile,
&Buffer,
sizeof(Buffer),
TRUE,
FILE_NOTIFY_CHANGE_FILE_NAME |// 修改文件名
FILE_NOTIFY_CHANGE_ATTRIBUTES | // 修改文件属性
FILE_NOTIFY_CHANGE_LAST_WRITE , // 最后一次写入
&BytesReturned,
NULL, NULL); 放在线程里监控就行
页:
[1]