Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - marioma86

Pagine: [1]
1
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 21, 2021, 19:29 »
Grazie @nuzzopippo per il prezioso supporto!
Quindi, vista la complessità su interfaccia grafica, mi consigli id provarlo come una procedura a sè...  ;)

2
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 21, 2021, 10:00 »
Grazie mille @nuzzopippo  ;)

             ORD LIN. RIF.CL         N.PEZZO                      N     DESCRIZIONE          CBAT    LISTINO Q.ORD Q.SER Q.SER Q.SOS MESSAGGIO                                N.LIN.
           105   8700   1K8890   26   01   001   41R   U   PROIETTORE DX          1078      391,94                   1       1        A
           105   8701   1K8890   26   01   001   56R   U   PROIETTORE DX          1078      203,22                   1       1        A
           105   8702   1K8890   26   01   006   97R   U   PROJECTEUR HALOGE      7078      161,14                   1       1        A
           105   8704   1K8890   26   01   033   17R   U   FARO ALOGENO DX        1078      238,82                   2       2        E
           105   8705   1K8890   26   01   034   21R   U   FARO ALOGENO DX        1078      235,28                   1       1        A
           105   8706   1K8890   26   01   045   25R   U   PROJECTEUR D           1078      635,86                   1       1        A
           105   8707   1K8890   26   01   066   24R   U   FARO ALOGENO           1078      229,74                   1       1        A
           105   8708   1K8890   26   01   084   90R   U   PROJECTEUR HALOGE      1078      294,54                   1       1        A
           105   8709   1K8890   26   06   003   73R   U   FARO ALOGENO SX        1078      238,82                   1       1        A
           105   8711   1K8890   26   06   017   32R   U   FARO ALOGENO SX        1078      235,28                   1       1        A
           105   8712   1K8890   26   06   020   78R   U   PROJECTEUR HALOGE      1078      294,54                   1       1        A
           105   8713   1K8890   26   06   037   95R   U   PROJECTEUR HALOGE      7078      159,42                   1       1        A
           105   8714   1K8890   26   06   071   59R   U   BLOCCO OTTICO SX       1078      391,94                   1       1        A
           105   8715   1K8890   26   06   094   54R   U   PROJECTEUR G           1078      552,36                   2       2        E
           105   8717   1K8890   26   16   000   01R   U   RIPETITORE LAT         1078       41,10                   1       1        A
           105   8718   1K8890   26   16   500   02R   U    FRECCIA   LAT SX      1078       41,10                   1       1        A
           105   8719   1K8890   26   16   55J   H0A   U   LAMPE G                7078       25,88                   1       1        A
           105   8720   1K8890   26   16   564   70R   U   FANALINO   LAT SX      1078       28,58                   1       1        A
           105   8724   1K8890   26   55   537   34R   U   FEU AR G   COFFRE      1078      207,36                   1       1        A
           105   8725   1K8890   26   55   537   52R   U   FAN COMB   POST SX     1078       69,22                   1       1        A
           105   8726   1K8890   26   55   556   98R   U   FEU AR G AILE          1078      207,36                   1       1        A
           105   8728   1K8890   26   58   500   07R   U   FARO POST FENDINE      1078       81,30                   1       1        A
           105   8729   1K8890   26   58   551   78R   U   FEND-NEB POST SX       7078       77,08                   1       1        A
           105   8730   1K8890   26   58   552   39R   U   FEU BROUILLARD AR      7078       95,84                   1       1        A
           105   8731   1K8890   26   60   078   64R   U   FARO POSIZ DX          7078       89,32                   1       1        A
           105   8732   1K8890 26     60   510   34R   U   FARO POSIZ SX          7078       92,78                   1       1        A
           105   9001          28     88   161   22R   U   BRAS BALAI COTE C      1028       80,76                   1       1        A
           105   8733   1K8890 62     02   202   29R   U   COLLECTION BOUCLI      1068      432,42                   1       1        A
           105   8734   1K8890 62     02   208   02R   U   PEAU BOUCLIER AV       7068      230,72                   1       1        A
           105   8735   1K8890 62     02   223   03R   U   PEAU BOUCLIER AV       7068      284,11                   1       1        A

come possiamo vedere, il codice articolo contenuto nella colonna "n. pezzo" è nel formato  26   01   001   41R... dovrebbe essere 260100141R

3
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 21, 2021, 07:37 »
Ottima cosa, la libertà ...  aspetto di vedere come "modelli" il Tuo ultimo quesito .

N.B. - le tecniche le hai già nel codice trattato ;)

Ciao @nuzzopippo, in questi giorni sto testando quotidianamente in ufficio il programma ed è davvero molto utile.
Ieri, però, mi sono imbattuto in un file (che ti allego) in cui il codice articolo e comunque una stringa, ma suddiviso da spazi (ne indico uno come esempio: 26 01 001 41R); avendo degli spazi al suo interno, purtroppo come puoi immaginare quando vado a creare il csv quegli spazi vengono sostituiti dal separatore.
Stavo cercando di buttare giù una procedura affinchè in questo caso consideri il campo come una stringa unica, ma mi sono arenato...  :question: :question:

Grazie in anticipo

p.s. purtroppo non riesco ad allegare il file pdf di prova, ma spero di essere stato chiaro

4
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 13, 2021, 20:05 »
@nuzzopippo fortunatamente sono solo io che gestisco il progetto, quindi posso sviluppare in autonomia ogni miglioramento  ;)

5
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 13, 2021, 08:15 »
Grazie @nuzzopippo, sto facendo qualche test "sul campo" e finora il risultato è soddisfacente con tutti i documenti che ho utilizzato.
Stavo pensando una cosa, è possibile selezionare tutte le righe ed importarle nella text box in basso in modo massivo, oppure bisogna procedere riga per riga?

Cerchiamo di migliorare il progetto perchè mi sembra davvero interessante  :D  ;)

Grazie mille

Ciao

6
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 09, 2021, 00:23 »
@nuzzopippo ho seguito il tuo consiglio e sto approfondendo le classi.
Per migliorare eventualmente il progetto volevo chiederti se, secondo te, fosse possibile una volta definite le righe da importare nel csv, scegliere anche quali colonne eventualmente eliminare (perchè non serve indicarle nel csv) e scegliere, eventualmente, come delimitatore la tabulazione.
Per apportare queste modifiche, ora ho creato un workflow utilizzando Knime, un software di data science; vorrei, però, integrare questa funzione direttamente nel codice dell'applicativo.

Pensi che possano essere delle modifiche fattibili?

Grazie in anticipo

7
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 04, 2021, 09:08 »
@nuzzopippo per l'utilizzo che devo farne leggere una pagina soltanto va più che bene  :D visto che di solito i pdf sono di una sola pagina... file di più pagine è residuale.
Comunque sto approfondendo il linguaggio python in quanto ha davvero tantissime applicazioni ed ha una sintassi molto intuitiva.

Grazie ancora per il supporto e Buona Pasqua.

Alla prossima :glasses-cool:

8
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Aprile 03, 2021, 22:00 »
Grazie mille @nuzzopippo per il codice, ma soprattutto per gli spunti formativi... è da poco che ho iniziato a scrivere codice in python, provenendo da c++, ed alla fine il concetto di classe non mi è nuovo...
Il codice è perfetto! Ora sto cercando di modificarlo per fargli leggere un pdf con più di una pagina, visto che questo se non sbaglio permette di leggere file pdf composti da una sola pagina...

9
Tkinter / Re:Associare comando di creazione csv in GUI
« il: Marzo 31, 2021, 21:55 »
Grazie mille... nel frattempo farò anch'io altre prove...

10
Tkinter / Associare comando di creazione csv in GUI
« il: Marzo 30, 2021, 21:32 »
Buonasera a tutti, con il supporto del forum sono riuscito a scrivere un programma che mi permette di creare un file csv a partire da un pdf:
import pdftotext
import csv


with open('18567.pdf', 'rb') as pdf_file:
    pdf = pdftotext.PDF(pdf_file)

lines = pdf[0].splitlines()[20:23]

table = []

for line in lines:
    table.append(line.split())

with open("prova2pdf.csv", "w") as csv_file:
    writer = csv.writer(csv_file, delimiter=";")
    writer.writerows(table)


A questo punto vorrei implementare un programma che mi permetta, attraverso un'interfaccia grafica, di selezionare il pdf e poi creare il csv; di seguito il codice che ho scritto ma che purtroppo genera errori:


from tkinter import *
import tkinter.messagebox
import tkinter.filedialog

def apri_esplora():
        open_file = tkinter.filedialog.askopenfile()


def crea_csv():
        import pdftotext
        import csv
        with open(open_file, 'rb') as pdf_file:
                pdf = pdftotext.PDF(open_file)
                lines = pdf[0].splitlines()[20:23]
        table = []
        for line in lines:
            table.append(line.split())

        with open("prova2pdf.csv", "w") as csv_file:
            writer = csv.writer(csv_file, delimiter=";")
            writer.writerows(table)

def chiudi_programma():
    ris = tkinter.messagebox.askyesno("Uscita","Sei sicuro di chiudere il programma?")
    if ris == True:
        finestra.destroy()

#Creazione finestra
finestra = Tk()
finestra.geometry("500x300")
finestra.title("Esplora risorse!")


#creazione menu
barra_dei_menu = Menu(finestra) #barra dei menu che appartiene alla finestra
menu_opzioni = Menu(barra_dei_menu,tearoff=0) #creo un menu che appartiene alla barra creata primac
barra_dei_menu.add_cascade(label="File",menu=menu_opzioni) #il menu che fa parte della barra dei menu è a tendina
#aggiungo i comandi con le etichette del menu
menu_opzioni.add_command(label="Apri esplora risorse",command=apri_esplora)
menu_opzioni.add_command(label="Crea csv",command=crea_csv)
menu_opzioni.add_command(label="Esci",command=chiudi_programma)

finestra.config(menu=barra_dei_menu) #configuriamo il menu come menu della finestra


finestra.mainloop()


Qualcuno di voi riesce ad aiutarmi?
Grazie in anticipo

11
Progetti e script / Re:Estrazione csv da pdf
« il: Marzo 04, 2021, 23:12 »
Purtroppo non riesco ad allegare i file di esempio che ho utilizzato...

12
Progetti e script / Estrazione csv da pdf
« il: Marzo 04, 2021, 23:02 »
Salve ragazzi, vorrei estrarre del testo da un pdf e creare un csv; visto che il file avrà sempre lo stesso template, vorrei riuscire ad estrarre sempre e solo alcune colonne.
Utilizzando pdftotext con ho buttato giù il seguente codice che mi permetta di estrarre solo una parte del documento, ma purtroppo il risultato sul csv è scadente (come da file allegato):

import pdftotext
import re
import csv


with open('18567.pdf', 'rb') as pdf_file:
    pdf = pdftotext.PDF(pdf_file)

lines = pdf[0].replace(' ', '@').split('\n')[20:23]

table=[]

for line in lines:
    row = re.sub('@+',';', line)
    table.append(row)
    print(row)

with open('prova2pdf.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerows(table)


Qualcuno di voi saprebbe aiutarmi a risolvere questo problema?

Grazie in anticipo

13
Grazie mille per i suggerimenti... ho iniziato ad avere questo approccio.
Anche io sono riuscito a buttare giù delle righe di codice che mi permettano di estrapolare testo dal pdf, ma per adesso da riga di comando.
La mia idea finale sarebbe quella di creare, per n formati standard di documento che riceviamo da altrettanti n fornitori, un eseguibile in modo tale che ogni collega possa utilizzarlo senza avere competenze particolari...

14
Ciao @nuzzopippo, innanzitutto grazie per il tempo e le risorse dedicati a questo post!
Cerco di risponderti per punti:
1- per quanto riguarda la procedura che ho in mente e vorrei implementare, deriva da una necessità... ad oggi nel nostro gestionale vengono caricati manualmente i documenti di trasporto (costituiti da tante righe quanti sono gli articoli acquistati) inserendo le singole righe; movimentando varie decine di documenti al giorno costituiti in media da 5/7 pagine ognuno, puoi immaginare quanto tempo il collega che si occupa del magazzino impiega per caricare questi documenti.
Avevo pensato, perciò, di iniziare a sviluppare un programma py, possibilmente ad interfaccia grafica (da cui poi vorrei generare un exe in modo tale che per i miei colleghi possa risultare user friendly), che una volta acquisito il file pdf del documento, estragga soltanto alcune colonne, essendo il form sempre lo stesso, per poi generare un tracciato csv oppure txt da importare nel gestionale stesso;

2- ho iniziato a lavorare con le librerie tkinter all'interfaccia grafica visto che sono d'accordo con te che il pdf è un formato ostico che non è semplice manipolare; nel frattempo, ho consultato degli esempi pypdf2 e tabula... mi sono rivolto al forum per avere un supporto e soprattutto un feedback da voi

Nel frattempo grazie mille per gli spunti

15
Buonasera a tutti...
Sono nuovo sul forum e volevo chiedervi gentilmente supporto su una procedura che vorrei mettere in atto in azienda.
Al fine di eliminare l'inserimento manuale dei documenti di trasporto che riceviamo in formato pdf (ridurre al minimo il tempo dedicato al data-entry a favore dell'analisi); vorrei creare in tkinter un'interfaccia grafica che mi permetta di scegliere il file pdf ed estrarre da esso il testo di cui ho bisogno (sempre nello stesso form) in modo da creare successivamente un tracciato .txt/csv per l'importazione nel gestionale aziendale.
Qualcuno di voi potrebbe aiutarmi? Ho già creato l'interfaccia grafica, ma ancora non sono riuscito a scrivere il codice per l'upload del file e l'estrazione dallo stesso.

Vi ringrazio in anticipo per la disponibilità

Pagine: [1]