【问题标题】:Python, check when file is saved [duplicate]Python,检查文件何时保存[重复]
【发布时间】:2014-09-03 20:05:55
【问题描述】:

目标是每次修改(保存)列表中的文件时执行一些操作。

我不知道继续。最终目标应该是这样的:

files = ['file1.txt', 'file2.txt', 'file3,txt']

if (one of the files in files is modified):
    Print '%s has been modified' % (filename)

【问题讨论】:

  • 修改是什么意思?
  • 哪个操作系统?
  • 我的意思是我想检查是否有人保存了文件。所以如果有人编辑文件并保存,程序会打印出文件被修改
  • 也许使用 os.path.getmtime(file) 并最后与当前比较
  • 我添加了一个简单的答案,我怀疑对于 10 个文件,您必须过于担心您的处理器。您也可以腌制结果并在一天中的某个时间运行脚本并进行比较,基本上有很多不同的方法可以做您想做的事情。

标签: python file-io file-management


【解决方案1】:

这将使用字典检查时间并打印任何修改过的文件:

 import os.path, time
files = ['file1.txt', 'file2.txt', 'file3,txt']
changes =  {"file1.txt":os.path.getmtime("file1.txt"),"file2.txt":os.path.getmtime("file2.txt"),"file3.txt":os.path.getmtime("file3.txt")}
while True:
    for f in files:
        if changes.get(f) < os.path.getmtime(f):
            print "File {} has been modified".format(f)
            changes[f] = os.path.getmtime(f)
        else:
            print "No changes, going to sleep."
    time.sleep(10)

【讨论】:

  • 什么时候更新变化的时间?
  • @VictorVH,忘了那部分!我添加了这条线。
  • 谢谢,我还以为有什么我没看到
  • 不用担心,不客气。我有点太快了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2012-01-25
  • 2021-04-03
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多