Python 有什么更好的方法来获得两个列表的差异?
在一个目录中,每次生成新文件(如一些日志文件)时都有一个目录 我的目的是获取10分钟内生成的文件量。要实时获取该值,数据如下:Python 有什么更好的方法来获得两个列表的差异?,python,Python,在一个目录中,每次生成新文件(如一些日志文件)时都有一个目录 我的目的是获取10分钟内生成的文件量。要实时获取该值,数据如下: 00:00 ~ 00:10 10 files 00:10 ~ 00:20 23 files ... 23:50 ~ 23:59 12 files 所以我的想法是在Linux系统上,通过crontab任务每10分钟运行一次统计脚本。 逻辑第一次运行脚本:通过glob.glob(“*”)获取当前文件列表 让我说A,所以当脚本
00:00 ~ 00:10 10 files
00:10 ~ 00:20 23 files
...
23:50 ~ 23:59 12 files
所以我的想法是在Linux系统上,通过crontab任务每10分钟运行一次统计脚本。
逻辑第一次运行脚本:通过glob.glob(“*”)
获取当前文件列表
让我说A,所以当脚本下次运行时(10分钟后),它将再次运行glob
,以获得当前文件列表B。我需要B.no A中的不同值,这样我就可以得到金额。
如何做?如果你还有其他好方法,请分享。你想研究的。您可以执行以下操作:
setA = set(listA)
setB = set(listB)
new_list = list(setB - setA)
您还可以执行其他设置逻辑来标识已删除的文件以及您想要查看的文件。您可以执行以下操作:
setA = set(listA)
setB = set(listB)
new_list = list(setB - setA)
您还可以执行附加的集合逻辑来识别已删除的文件等。正如我在@tcaswell上所评论的,使用Python内置的集合类是解决此类问题的一种很好的方法。下面是一些松散地基于Tim Golden的Python文章的示例代码:
正如我在@tcaswell上所评论的,使用Python的内置set类是解决此类问题的一种极好的方法。下面是一些松散地基于Tim Golden的Python文章的示例代码:
对于B中的i:A:XXXX中的j需要两个循环,但我希望得到其他更好的方法。对于B中的i:A:XXXX中的j需要两个循环,但我希望得到其他更好的方法。+1集合是解决问题的好方法。此外,脚本必须保存当前集,并在下次运行时将其读回,以便与当前文件集进行比较。+1集是解决此问题的好方法。此外,脚本必须保存当前集,并在下次运行时将其读回,以便与当前文件集进行比较。