【问题标题】:Compare previous file size with the current filesize and flag将以前的文件大小与当前的文件大小和标志进行比较
【发布时间】:2019-04-30 07:14:53
【问题描述】:

我有一个 bash 脚本,它遍历 yaml 目录中的所有 YAML 文件,执行 python 脚本。如果 JSON 文件存在及其文件大小以及 YAML 文件是否存在,此 python 脚本会简单地打印出来。

本质上,我正在尝试保存上次运行的文件大小并将其与当前运行的文件大小进行比较。如果文件大小的差异超过 50%,这将使用 log 或 print 语句标记 JSON 文件。我一直在看pythonos模块使用下面的函数来存储文件的最后访问时间

def getatime(filename):
    """Return the last access time of a file, reported by os.stat()."""
    return os.stat(filename).st_atime

我可以将上次访问时间保存在变量中
我还可以将文件大小保存在变量中

是否需要创建条件语句并将上次运行的文件大小与当前运行的文件大小进行比较?

【问题讨论】:

    标签: python json python-2.7 python-os


    【解决方案1】:

    不,条件语句不是必须的。

    为了将之前的文件大小与当前文件大小进行比较,您需要使用比较运算符(<、>= 等)。假设您将某个文件的先前大小读取到将路径名映射到文件大小的字典 sz 中,您可以对存储在变量 file_name 中的某些文件名进行比较,如下所示:

    sz[file_name] < os.path.getsize(file_name)
    

    你会经常在条件语句中看到这一点:

    if sz[file_name] < os.path.getsize(file_name):
        print('size has increased')
    

    但这不是打印消息的唯一方法。你可以例如也可以使用:

    try:
        assert sz[file_name] < os.path.getsize(file_name)
        print('size has increased')
    except AssertionError:
        pass
    

    或:

    while sz[file_name] < os.path.getsize(file_name):
        print('size has increased')
        break
    

    都具有相同的效果。

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      相关资源
      最近更新 更多