Utente:Divudi85/Python

Da Wikisource.

Pronti[modifica]

@Alex brollo ...il codice del grabber per esempio lo capisco abbastanza, anche se dà syntax error al "for" --divudi (disc.) 11:00, 23 dic 2017 (CET)

es. zfill riempie fino al numero du caratteri indicati e ci serve perchè fa da padding a n che poi sta dentro nomefile, right? --divudi (disc.) 11:05, 23 dic 2017 (CET)

passo passo[modifica]

Stai facendo passi da gigante, proposta: in questa pagina mettiamo le cose generali, nella sua pagina di discussione mettiamo le questioni più minute, come la discussione del codice di specifici script.

La lista delle cose che può fare python è lunga, si fa prima a dire che può fare praticamente tutto.

Ti propongo questi passi:

  1. capire bene il raw-input() in modo di poter passare qualcosa a uno script mentre corre;
  2. capire benissimo il modo di usare python dalla riga di comando, ossia di lanciare uno script e i necessari parametri in due modi:
    1. uno fastidoso, da una console cmd;
    2. uno più furbo, lanciando un file .bat (comodamente editabile con qualsiasi editor di testo, può lanciare una sequenza di script invece che uno solo)

Ti propongo anche di crearti un tuo script "base" con alcune funzioni che trovo particolarmente utili.

ieri ho preso questo in biblio, me lo studio un po' : ) Automatizzare le cose noiose con Python --divudi (disc.) 16:20, 23 dic 2017 (CET)

Passo lungo[modifica]

Python ti può servire per manipolare con rapidità sovrumana enormi testi.

  1. devi chiarirti fino a renderla "naturale" la questione della codifica dei caratteri: unicode, utf-8.
  2. altrettanto chiara deve diventare, per te, la questione della lettura e scrittura di file testo con la seguente regola: si scrive sempre in utf-8, si legge l'utf-8 e si traduce sempre in unicode prima di fare alcunchè con il testo dentro python. Poi si ritrasforma in utf-8 al momento di salvare. SEMPRE.
  3. bello sarebbe passare direttamente alle regex, ma io per molti anni ne ho fatto a meno, usando due funzioni che troverai in vari script: find_stringa() e produci_lista(). Saperle usare sarà un bel passo avanti, capire come funzionano (e perchè talora falliscono) sarà un grosso passo in avanti.

Lo so che questi compiti a casa sono pesantucci.... Alex brollo (disc.) 15:34, 24 dic 2017 (CET)

ehehe ci vorrà tempo ma è un bel passatempo e sono abbastanza determinato, questi passaggi che indichi qui sopra immagino siano in particolare per match&split e in generale per la manipolazione degli strati testo. per quanto riguarda le regex le sto usando su un testo abbastanza sporco e sono un bella mano al lavoro, ovviamente per me per ora è come usare un martello per mangiare gli spaghetti, ma pian piano... in ultimo il grabber che mi hai passato non sono riuscito a farlo funzionare però piano piano ne capisco sempre meglio i passaggi, mi dà syntax error all'inizio del ciclo "for" ma non me ne capacito, ancora non ha fatto nulla... boh, ci arriverò... --divudi (disc.) 16:38, 24 dic 2017 (CET)
Sì, voglio portarti a manipolare non solo testi "lisci", ma anche html e xml, e pure il formato "lisp-like" prodotto dalla più potente routine djvuLibre: djvused.exe. Per il grabber, uffa! mi copincolli il codice che stai cercando di usare da qualche parte, magari in una sottopagina? Mettilo fra tag pre, oppure fra tag syntaxhighlight. Nel frattempo, ho riesumato tesseract e ci sto facendo delle prove; l'idea è di costruire, con Sam, un super-IA upload in grado da partire sia da IA, che da semplici immagini, producendo e caricando sia il djvu che la pagina Indice. Alex brollo (disc.) 17:38, 24 dic 2017 (CET)

Progammino fresco fresco di cui fare la "notomia"[modifica]

Eccolo: Utente:Divudi85/Python/fixOCR.py

Fatto per ora per essere fatto correre sotto Idle, se fatto correre in una directory dove ci sia un djvu con strato testo, applica a tutte le parole una funzione repl(), che le può modificare una a una. Al momento fa una cosa "stupida", solo per dimostrazione: trasforma tutte le lettere in maiuscole. Ma dentro può esserci qualsiasi cosa.

Per lanciarlo, da Idle: dsedEdit("NomeFileDivu.djvu") Alex brollo

PS: ci sono dentro find_stringa(), produci_lista() e due funzioni per il salvataggio "pickle": non vengono usate, dallo script, ignorale. (disc.) 20:19, 24 dic 2017 (CET)

Riga per riga, nel programmino ho aggiunto la spiegazione di cosa fa.
sei un santo : ) --divudi (disc.) 21:09, 25 dic 2017 (CET)