Creazione di file di dati all'interno di un pacchetto

0

Mi piacerebbe distribuire il mio codice su un server web come un pacchetto. Lì Python è sottoprocesso e gli script vengono eseguiti. Questi script utilizzano file di dati. Ma nel caso in cui un file è necessario e non esiste, dovrebbe essere creato.

Intendo utilizzare pkg_resources per la gestione di quei file all'interno del pacchetto, ma con limitazioni. Non c'è modo di creare quelle risorse.

Si potrebbe, ovviamente, iniziare a manipolare le variabili di percorso all'interno del pacchetto per ottenere riferimenti assoluti ai file, ma sto cercando qualcosa di un po 'più conveniente. Non i migliori dei motivi per non usare un metodo, ma qualcuno potrebbe effettivamente sapere qualcosa che non faccio!

Quindi, qual è il modo migliore o attuale di creare file di dati all'interno di un pacchetto?

Se fa la differenza, i file sono direttamente sotto le fonti che li manipolano. Sono nuovo nel confezionare e rilasciare il codice Python, quindi qualsiasi aiuto è molto apprezzato! Sarei anche aperto a cambiare approccio se è necessario per farlo funzionare.

    
posta Felix 19.07.2018 - 11:28
fonte

1 risposta

0

Dopo tutto sembra che pkg_resources possa essere utilizzato per lo scopo. Oltre ai file, è anche possibile specificare una cartella da recuperare come risorsa. Ciò consente di puntare a quella cartella per qualsiasi operazione sui file.

Il codice potrebbe apparire come segue:

import pkg_resources
folder = pkg_resources.resource_filename('module_name', 'folder_name/')
print(folder)

> 'C:\Absolute\Path\To\module_name\folder_name\'

Funziona almeno per il pacchetto symlink locale che ho impostato. Immagino che non ci siano motivi per aspettarsi che si rompa da nessun'altra parte, ma aggiornerò se lo fa.

Una parola di cautela, il secondo argomento, resource_name può essere qualsiasi cosa tu voglia, e la funzione restituirà quella risorsa come se fosse un percorso valido.

    
risposta data 19.07.2018 - 14:57
fonte

Leggi altre domande sui tag