Sto usando dateutil per analizzare i nomi dei file delle immagini e ordinarli in base alla data. Dato che non tutte le mie foto hanno metadati, dateutil sta cercando di indovinare dove metterle.Python datautil parser, ignora la parte non datata della stringa
La maggior parte delle mie foto sono in questo formato: 2007-09-10_0001.jpg 2007-09-10_0002.jpg ecc ...
fileName = os.path.splitext(file)[0]
print("Guesssing date from ", fileName)
try:
dateString = dateParser.parse(file, fuzzy=True)
print("Guessed date", dateString)
year=dateString.year
month = dateString.month
day=dateString.day
except ValueError:
print("Unable to determine date of ", file)
Il ritorno sto ottenendo è questo:
('Guesssing date from ', '2007-09-10_00005')
('Unable to determine date of ', '2007-09-10_00005.jpg')
Ora dovrei riuscire a rimuovere tutto da dopo il trattino basso, ma se possibile ho desiderato una soluzione più robusta, nel caso avessi delle immagini in un altro formato. Anche se sfocato proverei a trovare qualsiasi data nella stringa e corrispondere a quello, ma apparentemente non funziona ...
C'è un modo semplice per ottenere il parser per trovare qualcosa che assomiglia ad una data e fermarsi dopo? In caso contrario, qual è il modo più semplice per forzare il parser a ignorare tutto dopo il trattino basso? O un modo per definire più formati di data con sezioni ignorate.
Grazie!
è la tua data almeno qualche modo formattato? Come "yyyy-mm-dd da qualche parte nel nome del file"? – mishik
Ciò che intendo è che a volte non è possibile distinguere mese e data se il formato della data è aaaa-gg-mm o aaaa-mm-gg. – mishik
@mishik Sì, di solito è qualcosa come "2007-09-10" in un nome file completo di "2007-09-10_001". Se rimuovo il "_001" dalla stringa, riconosce correttamente la data. – deranjer