Ho il seguente codice Python:Python come gestire lo split quando il delimitatore non è presente?
def split_arg(argv):
buildDescriptor = argv[1]
buildfile, target = buildDescriptor.split("#")
return buildfile, target
Si aspetta una stringa (argv[1]
) del modulo buildfile#target
e li divide in due variabili con lo stesso nome. Quindi una stringa come "my-buildfile # some-target" verrà interrotta in my-buildfile e , rispettivamente, target-.
A volte però, non ci saranno "#" e target; a volte hai solo "my-buildfile", nel qual caso voglio solo target "" (vuoto).
Come si modifica questa funzione in modo che gestisca le istanze in cui "#" non esiste e restituisce buildfile con un target vuoto?
Attualmente, se mi passate solo il BuildFile, getta un errore:
buildfile, target = buildDescriptor.split("#")
ValueError: need more than 1 value to unpack
Grazie in anticipo!
Utilizzare la digitazione anatra, provare a fare ciò che si desidera e rilevare le eccezioni. –
Grazie per il suggerimento, ma cos'è la digitazione anatra? – IAmYourFaja
La digitazione anatra è una delle tecniche di programmazione più adatte per i programmi Python, basta cercare su google "python duck typing". –