将以前的文件大小与当前文件大小和标志进行比较

时间:2018-11-28 11:30:00

标签: python json python-2.7 python-os

我有一个bash脚本,该脚本循环遍历yaml目录中的所有YAML文件,并执行python脚本。该python脚本仅打印出JSON文件,文件大小以及YAML文件是否存在。

基本上,我正在尝试保存上一次运行的文件大小,并将其与当前运行的文件大小进行比较。如果filesize的差异大于50%,这将使用log或print语句标记JSON文件。我一直在查看python os模块,以使用以下功能存储文件的最后访问时间

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

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

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

1 个答案:

答案 0 :(得分:0)

否,条件语句不是必需的。

要比较以前的文件大小和当前的文件大小,您需要使用比较运算符(<>=等)。假设您从某个文件中读取了先前的大小,并将其映射到文件大小的字典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

所有具有相同的效果。