我有一个bash脚本,它循环遍历yaml目录中的所有YAML文件,执行一个python脚本。如果JSON文件及其文件大小和YAML文件存在,此python脚本将简单地打印出来。
本质上,我试图保存最后一次运行的文件大小,并将其与当前运行的文件大小进行比较。如果文件大小的差异超过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我可以将最后一次访问时间保存在一个变量中
我还可以将文件大小保存在一个变量中
我是否需要创建一条条件语句,并将上次运行文件大小与当前运行文件大小进行比较?
发布于 2018-11-28 22:02:29
不,条件语句不是必须的。
为了将以前的文件大小与当前的文件大小进行比较,您需要使用比较运算符(<、>=等)。假设您将一些文件中以前的大小读取到一个将路径名映射到文件大小的字典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都有相同的效果。
https://stackoverflow.com/questions/53518448
复制相似问题