Как вы можете получить атрибуты MA C times / file из всех файлов в каталоге на Ma c OS - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь найти способ получить все значения MA C и другие атрибуты файлов для всех файлов в каталоге за последние 7 дней.

Я пробовал варианты команды «Найти» несколько параметров | xargs stat -x ", но я все еще не получаю то, что ищу.

1 Ответ

0 голосов
/ 09 июля 2020

Вам нужна команда оболочки stat -x *. Вот как вы можете запустить это в Python:

import subprocess

filesPath = "/path/to/folder/*" # use /*.* instead to capture files only, no directories

allData = subprocess.run("stat -x " + filesPath, shell=True, capture_output=True,
    universal_newlines=True).stdout

Это даст вам одну гигантскую строку со всем выводом из stat. Если вы хотите отформатировать это в красивый список словарей для каждого файла, вы можете использовать это:

import re

files = [("File: " + f).strip() for f in allData.split("File: ")]

fileDictList = [dict(re.findall(r"(\w+): (.*?)\s*(?=\w+: |$)", fileData)) for fileData in files]

Тогда вы получите что-то вроде следующего в fileDictList:

[{'Access': 'Tue Jul  7 19:02:47 2020',
  'Change': 'Tue Jul  7 19:02:46 2020',
  'Device': '1,4',
  'File': '"/Users/bob/Documents/a.png"',
  'FileType': 'Regular File',
  'Gid': '(   20/   staff)',
  'Inode': '6754586',
  'Links': '1',
  'Mode': '(0644/-rw-r--r--)',
  'Modify': 'Wed Jun 17 01:36:53 2020',
  'Size': '620729',
  'Uid': '(  501/bob)'},

 {'Access': 'Tue Jul  7 19:02:47 2020',
  'Change': 'Tue Jul  7 19:02:46 2020',
  'Device': '1,4',
  'File': '"/Users/bob/Documents/b.png"',
  'FileType': 'Regular File',
  'Gid': '(   20/   staff)',
  'Inode': '6754585',
  'Links': '1',
  'Mode': '(0644/-rw-r--r--)',
  'Modify': 'Wed Jun 17 01:36:52 2020',
  'Size': '839719',
  'Uid': '(  501/bob)'}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...