# Funktionen zum Dateizugriff mit Suchen, Lesen, Schreiben # ------------------------------------------------------------ """ """ import os import os.path import re from ulrich.message import Message from ulrich.program import Job from pprint import pp def getDump(obj): result="" print (str(type(obj))) result = vars(obj) return str(result) # if type(obj) == "__dict__" def getFiles(msg: Message, path, pattern, conn): """ search filenames in the directory - if conn is set search remote :param msg: -- msg-Objekt :param path: -- Pfad - String :param pattern: -- Dateiname als Pattern :param conn: :return: Array mit gefundenen Dateien, nur Dateiname """ if conn is not None: return getRemoteFiles(msg, path, pattern, conn) job = Job.getInstance() verify = int(job.getDebugLevel("file_tool")) out = [] msg.debug(verify, "getFiles " + path + " , " + pattern) for f in os.listdir(path): msg.debug(verify, "getFiles " + f) if re.search(pattern, f): msg.debug(verify, "match " + f) out.append(f) return out def getRemoteFiles(msg: Message, path, pattern, conn): """ search filenames in the directory - if conn is set search remote :param msg: -- msg-Objekt :param path: -- Pfad - String :param pattern: -- Dateiname als Pattern :param conn: :return: Array mit gefundenen Dateien, nur Dateiname """ def getFilesRec(msg: Message, path, pattern): """ Sucht Dateien im Verzeichnis rekursiv :param msg: -- msg-Objekt :param path: -- Pfad - String :param pattern: -- Dateiname als Pattern :return: Array mit gefundenen Dateien, absoluter Pfad """ job = Job.getInstance() verify = int(job.getDebugLevel("file_tool")) out = [] msg.debug(verify, "getFilesRec " + path + " , " + pattern) for (r, dirs, files) in os.walk(path): for f in files: msg.debug(verify, "getFilesRec " + f) if re.search(pattern, f): msg.debug(verify, "match " + f) out.append(os.path.join(r, f)) return out def getTree(msg: Message, pfad): job = Job.getInstance() verify = int(job.getDebugLevel("file_tool")) msg.debug(verify, "getTree " + pfad ) tree = {} files = [] for f in os.listdir(pfad): if os.path.isDir(os.path.join(pfad, f)): tree[f] = getTree(msg, os.path.join(pfad, f)) elif os.path.isFile(os.path.join(pfad, f)): files.append(f) tree["_files_"] = files return tree def mkPaths(msg, pfad): job = Job.getInstance() verify = int(job.getDebugLevel("file_tool")) modus = job.conf.confs["paths"]["mode"] os.makedirs(pfad, exist_ok=True)