Сравнить предыдущий размер файла с текущим размером файла и пометить - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть скрипт bash, который перебирает все файлы YAML в каталоге yaml, выполняя скрипт python.Этот сценарий Python просто выводит на печать, если файл JSON существует вместе с размером файла, а также с существующим файлом YAML.

По сути, я пытаюсь сохранить размер файла последнего запуска и сравнить его с размером файлатекущий пробег.Если разница в размере файла превышает 50%, это помечает файл JSON оператором log или print.Я искал модуль 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 голосов
/ 28 ноября 2018

Нет, условное утверждение не обязательно.

Чтобы сравнить предыдущий размер файла с текущим размером файла, необходимо использовать оператор сравнения (<, >= и т. Д.).Предполагая, что вы прочитали предыдущий размер из некоторого файла в словарь 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

Все с одинаковым эффектом.

...