|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
Python excel
Ciao a tutti
sto facendo un piccolo script in python che deve eseguire questi passaggi: aprire un excel copiare una cella specifica e effettuare una ricerca su un db copiare il contenuto della richiesta del db in una variabile salvare la variabile su un txt aprire il txt e mettere ogni riga del txt in una variabile diversa salvare le varibili su un nuovo excel. riesco a fare tutto. il problema è che quando vado a copiare i valori importati dallo script su un file di testo, i valori risultano in questo modo: "valore" anche se all'apparenza sull'excel non ci sono le virgolette. come posso risolvere secondo voi? a, ho utilizzato per il tutto xlrd e urllib |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Puoi riportare la parte di codice che si occupa di scrivere sul file di testo?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
certo
una volta fatta la richiesta dal db inserisco il tutto in una variabile chiamata "the_page" file = open('C:\Users\danilo\Desktop\provapy.txt', 'w') file.write(the_page) file.close() e metto nella variabile "DATI" quello che mi serve file=open('C:\Users\danilo\Desktop\provapy.txt','r') DATI=file.readlines()[0] file.close() |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Fai una prova così:
Codice:
file = open('C:\Users\danilo\Desktop\provapy.txt', 'w')
file.write(the_page)
print 'DATO:', repr(the_page), '!'
file.close()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
intanto grazie per la risposta tempestiva
allora provando con la tua parte di codice il risultato è il seguente il print su schermo riporta questo: '83313340460\n' il print sul file di testo è questo: 83313340460 ed ho provato a farlo incollare anche sulla cella excel e mi riporta questo: "83313340460" il problema che ho notato è che se richiedo i dati dal db mi da questo problema. Invece se la variabile la riempio a mano, cioè: the_page = "ciao" allora non mi da problemi. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Probabilmente l'errore sta nel carattere '\n'.
Infatti the_page contiene '83313340460\n' e non soltanto '83313340460'. Il che può benissimo starci, perché se vuoi suddividere i dati scritti riga per riga, è indispensabile che nel file di testo venga memorizzato anche questo carattere. A questo punto puoi risolvere il problema in fase di lettura, eliminando il '\n' così: Codice:
DATI=file.readlines()[0].replace('\n', '')
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
Funziona!
sei un grande!!! saranno 2 settimane che mi ero fermato in quel punto a questo punto ti faccio un altra domanda inerente. quando vado a popolare le celle in excel, non so perchè mi toglie tutta la formattazione del file, quindi tutte le formule i concatena ed il resto, sai darmi qualche dritta? Grazie ancora |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Di nulla.
Avevi detto che creavi un file Excel nuovo al termine dell'elenco di azioni che hai descritto prima. E' chiaro che se il file è nuovo, non avrà alcuna formattazione. Altrimenti non ho capito bene il tuo problema, e mi servirebbero altre informazioni.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
hai perfettamente ragione
il file excel non è nuovo ma è già ricco di altri dati io per scrivere sul file uso queste stringhe: MyFile = xlrd.open_workbook(r'C:\Users\danilo\Desktop\python_test\file.xls') MyFile_mod = copy(MyFile) MyFile = MyFile.sheet_by_name(u'sheet1') MyFile_mod.get_sheet(0).write(a, 120, DATI) MyFile_mod.save(r'C:\Users\danilo\Desktop\python_test\file.xls') |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Purtroppo non conosco xlrd.
Devi vedere se c'è un metodo per estrarre lo "stile" o, in generale, i metadati di una cella, e se è possibile passarlo/i al metodo write. A naso direi che qualcosa del genere debba esistere, perché mi pare un'esigenza comune / normale.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: May 2003
Messaggi: 48
|
una info
per leggere 2 dati e metterli in variabili separate faccio di questo: file=open('C:\Users\danilo\Desktop\provapy.txt','r') DATI=file.readlines()[0].replace('\n', '') file.close() file=open('C:\Users\danilo\Desktop\provapy.txt','r') DATI2=file.readlines()[1].replace('\n', '') file.close() se invece provo a fare questo: file=open('C:\Users\danilo\Desktop\provapy.txt','r') DATI=file.readlines()[0].replace('\n', '') DATI2=file.readlines()[1].replace('\n', '') file.close() python mi risponde: IndexError: list index out of range >>> è possibile che per leggere due dati devo aprire e chiudere il file 2 volte? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:50.



















