#!/usr/bin/python3 import csv import os from datetime import datetime path = '/srv/tftp/' header_cfg = """#!version:1.0.0.1 #Tasti rapidi del tastierino esterno #ATTENZIONE: NON MODIFICARE QUESTO FILE #Questo file viene generato automaticamente a partire dal file #tastierino_esterno.csv, modificare quest'ultimo ed attendere qualche minuto account.1.sip_server.1.address = 192.168.1.7""" def append_log(text): with open("error.txt", "a") as f: now = datetime.now() now_formatted = now.strftime("%d/%m/%Y, %H:%M:%S") log = " ".join([now_formatted, text]) f.write(log) try: os.chdir(path) append_log("Current working directory: {0}".format(os.getcwd())) except FileNotFoundError: append_log("Directory: {0} does not exist".format(path)) except NotADirectoryError: append_log("{0} is not a directory".format(path)) except PermissionError: append_log("You do not have permissions to change to {0}".format(path)) def main(ofile): with open(ofile, newline='') as csvfile: spamreader = csv.reader(csvfile, delimiter=',', quotechar='"') line_count = 0 to_write = header_cfg for row in spamreader: if line_count == 0: # trova la posizione dei campi che ci interessano idx_ext = row.index('extension') idx_name = row.index('name') else: if 'idx_ext' not in locals() or 'idx_name' not in locals(): append_log("Errore: file csv senza i campi 'extension' e/o 'name'") try: ext_n = int(row[idx_ext]) except: continue ext_name = row[idx_name] to_write = "\n".join([to_write, print_ext(line_count, ext_n, ext_name)]) line_count += 1 write_f(to_write,"tastierino_esterno.cfg") def write_f(text,file_name): with open(file_name, "w") as file: file.write(text) def print_ext(n, n_ext, lbl_ext): spamrow = f"""expansion_module.1.key.{n}.extension = expansion_module.1.key.{n}.label = {n_ext} expansion_module.1.key.{n}.type = 16 expansion_module.1.key.{n}.value = {lbl_ext}""" return spamrow def print_hotkeys(): exit if __name__ == '__main__': ofile: str = 'tastierino_esterno.csv' try: main(ofile) except FileNotFoundError: append_log("File CSV non trovato")