Ciao a tutti,

ho scritto un piccolo script in Python che crea un file json con la lista dei nomi dei file e prende il path alla directory da analizzare tramite riga di comando:

codice:
import sys
import os
import json
import hashlib


def md5(fname):
    hash_md5 = hashlib.md5()
    with open(fname, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_md5.update(chunk)
    return hash_md5.hexdigest()

files = []
if len(sys.argv) > 1:
    directory = sys.argv[1]
    for filename in os.listdir(directory):
        if os.path.isfile(filename):
            file_stats = os.stat(filename)
            item = {
                "FileName": filename
            }
            files.append(item)

    directoryDetails = {
        "files": files
    };
    f = open("root.json", "w")
    f.write(json.dumps(directoryDetails, indent=4))
    f.close()
    sys.exit(0);
else:
    print("No input directory: please specify input directory")
    sys.exit(-1)
Se lancio lo script così "python myPythonScript.py ." il file viene scritto e riporta le informazioni che mi servono.
Se invece provo ad indicare un path assoluto (es. /var/log/) il file viene creato ma è vuoto:
codice:
{
    "files": []
}
Qualcuno mi sa dire perché? Non credo sia un problema di permessi.