Sto usando la registrazione di pitone e ho un formattatore che è simile al seguente:logging python - come posso troncare il pathname solo agli ultimi caratteri o solo al nome file?
formatter = logging.Formatter(
'%(asctime)s - %(pathname)86s - %(lineno)4s - %(message)s', '%d %H:%M'
)
Come potete vedere, mi piace l'informazione nei miei file di log di allineare ordinatamente in colonne. Il motivo per cui ho 86 spazi riservati per il percorso è perché i percorsi completi di alcuni dei file utilizzati nel mio programma sono così lunghi. Tuttavia, tutto ciò di cui ho veramente bisogno è il nome del file effettivo, non il percorso completo. Come posso ottenere il modulo di registrazione per darmi solo il nome del file? Meglio ancora, dato che ho alcuni nomi di file lunghi, vorrei i primi 3 caratteri del nome del file, seguito da '~', quindi gli ultimi 16 caratteri. Così
/Users/Jon/important_dir/dev/my_project/latest/testing-tools/test_read_only_scenarios_happily.py
dovrebbe diventare
tes~arios_happily.py
Ho visto la tua modifica proposta; felice che tu l'abbia risolto. 'record.args' è un dict o una tupla, ma il formattatore ti ha suggerito di utilizzare esclusivamente un dettato, motivo per cui ho creato la mia soluzione basandomi su questo. È facile adattarsi anche a una tupla, come hai scoperto. :-) –