首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将以前的文件大小与当前的文件大小和标志进行比较

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

Stack Overflow用户
提问于 2018-11-28 19:30:00
回答 1查看 189关注 0票数 1

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

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

代码语言:javascript
复制
def getatime(filename):
    """Return the last access time of a file, reported by os.stat()."""
    return os.stat(filename).st_atime

我可以将最后一次访问时间保存在一个变量中

我还可以将文件大小保存在一个变量中

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

EN

回答 1

Stack Overflow用户

发布于 2018-11-28 22:02:29

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

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

代码语言:javascript
复制
sz[file_name] < os.path.getsize(file_name)

您将经常在条件语句中看到这一点:

代码语言:javascript
复制
if sz[file_name] < os.path.getsize(file_name):
    print('size has increased')

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

代码语言:javascript
复制
try:
    assert sz[file_name] < os.path.getsize(file_name)
    print('size has increased')
except AssertionError:
    pass

或者:

代码语言:javascript
复制
while sz[file_name] < os.path.getsize(file_name):
    print('size has increased')
    break

都有相同的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53518448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档