[Python] sostituzione carattere in una stringa
Salve a tutti, volevo sapere se in Python c'è un metodo comodo per sostituire in un tipo dato stringa un determinato carattere in un'altro. per esempio sostituendo gli '_' con degli spazi: "ciao_mondo" diventa "ciao mondo" Ho letto la documentazione su Template del modulo string ma non ci ho capito poi molto...infatti non so neanche se può servire...boh Grazie ciao ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] sostituzione carattere in una stringa
Fin troppo facile...dalla documentazione giuro che non avevo capito che replace faceva proprio questo! Comunque grazie mille alla prossima! Il 25/12/07, Antonio Cangiano<[EMAIL PROTECTED]> ha scritto: > On Dec 25, 2007 11:57 AM, ugaciaka <[EMAIL PROTECTED]> wrote: > > > per esempio sostituendo gli '_' con degli spazi: > > > > "ciao_mondo" diventa "ciao mondo" > > > > "ciao_mondo".replace("_"," ") > -- > http://stacktrace.it - Aperiodico di resistenza informatica. > http://antoniocangiano.com - Zen and the Art of Ruby Programming > http://math-blog.com - Math Blog: Mathematics is wonderful! > http://effettofarfalla.com - Il battito d'ali di un italiano a Toronto > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] sostituzione carattere in una stringa
Fin troppo facile...dalla documentazione giuro che non avevo capito che replace faceva proprio questo! Comunque grazie mille alla prossima! Il 25/12/07, Antonio Cangiano<[EMAIL PROTECTED]> ha scritto: > On Dec 25, 2007 11:57 AM, ugaciaka <[EMAIL PROTECTED]> wrote: > > > per esempio sostituendo gli '_' con degli spazi: > > > > "ciao_mondo" diventa "ciao mondo" > > > > "ciao_mondo".replace("_"," ") > -- > http://stacktrace.it - Aperiodico di resistenza informatica. > http://antoniocangiano.com - Zen and the Art of Ruby Programming > http://math-blog.com - Math Blog: Mathematics is wonderful! > http://effettofarfalla.com - Il battito d'ali di un italiano a Toronto > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] variabili globali e d'istanza: provengo da java
Ho notato che in python c'è una cosa che, provenendo da java, mi provoca disorientamento. Le variabili! Riassumendo: ho scritto un programmino (senza nessuna classe ma con sole funzioni), ho notato che se passo da paramentro una variabile per fargli capire al compilatore che non è una variabili d'istanza (cioé della funzione) ma di tutto del corpo del programma devo anteporre global al nome della variabile passata. Ok fin qua ci sono. Ma se io volessi ora mettere tutto in una classe come agisco? Dove definisco le variabili globali? Nella classe? All'interno del costruttore?... Il mio programmino di esercizio è questo sotto e praticamente non fa altro che sostituire il carattere "_" con uno spazio " ". import os import string def rinomina_nome_file(nome_file): return nome_file.replace("_", " ") def lista_file2lista_file_rinominati(lista_file): global lista_file_rinominati for i in range(len(lista_file)): lista_file_rinominati.insert(i, rinomina_nome_file(lista_file[i])) def tree2lista_file(tree): global lista_file for i in tree: lista_file = i[2][:] def rinomina_file(lista_file, lista_file_rinominati): for i in range(len(lista_file)): os.rename(path+lista_file[i], path+lista_file_rinominati[i]) #variaibli lista_file=[] lista_file_rinominati=[] path="/home/ivan/prova/" tree=os.walk(path) #applico i metodi... tree2lista_file(tree) lista_file2lista_file_rinominati(lista_file) rinomina_file(lista_file, lista_file_rinominati) #COSA INVECE VORREI FARE #io vorrei invece fare solo, dopo aver creato la classe che ingloba i miei metodi: #oggetto=Classe(carattere_da_sostituire, carattere_sostituito) #oggetto.rinomina_file() scusate la lunghezza del post... Grazie ciao ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] variabili globali e d'istanza: provengo da java
Grazie mille a tutti per le dritte e scusate le cavolate da nubbio. Così secondo voi è più pythonico il codice? (perdonate la nomenclatura per il momento..) import os #effettivamente string non serve... def rinomina_nome_file(nome_file): return nome_file.replace("_", " ") #uhm...forse è un metodo ridondante...per il momento lo lascio def lista_file2lista_file_rinominati(lista_file): lista_file_rinominati=[] for file in lista_file: lista_file_rinominati.append(rinomina_nome_file(file)) return lista_file_rinominati def tree2lista_file(tree): lista_file = [] for item in tree: lista_file=item[2][:] return lista_file #ho dovuto lasciare la copia di una lista...l'append mi copia una lista in una lista... def rinomina_files(lista_file, lista_file_rinominati): for i in range(len(lista_file)): os.rename(path+lista_file[i], path+lista_file_rinominati[i]) #for i in range(len(lista_file)) non so come toglierlo da qui... #tipo un for file in lista file + file2 in lista file rinominati...qualcosa del genere path="/home/ivan/prova/" tree=os.walk(path) lista_file= tree2lista_file(tree) lista_file_rinominati= lista_file2lista_file_rinominati(lista_file) #va bene assegnare così? rinomina_files(lista_file, lista_file_rinominati) # potrei mettere tree2lista_file e lista_file2lista_file_rinominati dentro la definizione di #rinomina_files invece richiamarli in questo "main di prova" o è una cavolata? #sì in effetti mettere tutto in una classe così in questo programma è una #complicazione...lo vorrei fare come esercizio ;-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] variabili globali e d'istanza: provengo da java
perfetto grazie mille...vedo che nonostante il mio impegno sono ancora un pivello... Comunque ho un'altro problema con global...in questo programma ho dovuto proprio metterlo...è il caso particolare che devo lasciarlo? o sennò come si toglie? grazie infinite... #import nomemodulo...i moduli contengono classi...che a loro volta contengono funzioni... import threading import time import thread import random """ thread lettori che devono agire concorrentemente all'uso della stanza la stanza è una risorsa comune non condivisibile gli accreditati hanno più priorità rispetto agli occasionali gli occasionali oltre che aspettare che la sala sia libera devono aspettare che non ci siano accreditati uso semaofri privati """ class Lettore(threading.Thread): #nomemodulo.Classe #il costruttore, self e' come this in java...solo che non e' una parola chiave... def __init__(self, accreditato): self.accreditato = accreditato threading.Thread.__init__(self) def run(self): print self.getName() + " attivato \n" time.sleep(random.randrange(10, 20, 1)) print self.getName() + " aspetta di entrare \n" leggi(self.accreditato) print self.getName() + " entra e legge \n" time.sleep(random.randrange(5, 10, 1)) print self.getName() + " restituisce \n" restituisci() def leggi(accreditato): #adesso i thread si mettono in coda global coda_Accreditati, coda_Occasionali, stanza_libera mutex.acquire() if accreditato: coda_Accreditati+=1 else: coda_Occasionali+=1 mutex.release() #ora i thread cercano di acquisire la risorsa mutex.acquire() if stanza_libera: stanza_libera=False if accreditato: coda_Accreditati-=1 cAccreditati.release() else: if (not accreditato) and coda_Accreditati==0: coda_Occasionali-=1 cOccasionali.release() mutex.release() if accreditato: cAccreditati.acquire() else: cOccasionali.acquire() def restituisci(): global coda_Accreditati, coda_Occasionali, stanza_libera mutex.acquire() if coda_Accreditati>0: coda_Accreditati-=1 cAccreditati.release() else: if coda_Occasionali>0 and coda_Accreditati==0: coda_Occasionali-=1 cOccasionali.release() else: stanza_libera=True mutex.release() #mutua esclusione..vabbeh non uso un semaforo...ma il discorso non cambia... mutex = threading.Lock() #dalla documentazione in rete si capisce che i semafori implementati da python sono numerici... #non ci vuole molta fantasia a renderli binari... ;-) cAccreditati = threading.Semaphore(0) cOccasionali = threading.Semaphore(0) stanza_libera=True coda_Accreditati=0 coda_Occasionali=0 num_Accreditati=3 num_Occasionali=3 #creo e attivo i miei thread for i in range(num_Occasionali): thread = Lettore(False) thread.setName("Occasionale" + str(i)) thread.start() for i in range(num_Accreditati): thread = Lettore(True) thread.setName("Accreditato" + str(i)) thread.start() #questo programma provoca starvation degli occasionali se ciclato il run..ovvio!!!... #http://docs.python.org/lib/semaphore-objects.html ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] variabili globali e d'istanza: provengo da java
> Ma hai davvero bisogno di tutto questo casino con i thread? ;-). > > Nota che non ho letto a fondo e che magari questo non è il tuo programma > finale. > Sono *una parte* di esercizi d'esame del corso di Sistemi Operativi all'Università di Padova (il resto sono domande di teoria, esercizi su scheduling ecc ecc, e poi anche ADA...insomma chi più ne ha più ne metta). A parte ADA (ovviamente) gli esercizi di programmazione bisognava scriverli in java, i docenti ci avevano scritto delle classi per usare i: semafori privati, regioni critiche, monitor (java, brinch hansen, hoare). Ora che ho visto che su python per implementare i semafori basta importa threading non ho resistito e ho dovuto provare...e funziona Esauriente come risposta ;-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] variabili globali e d'istanza: provengo da java
2007/12/26, Carlo C8E Miron <[EMAIL PROTECTED]>: > Scusa la curiosita', chi e' il tuo prof di sistemi operativi? Michele Moro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] variabili globali e d'istanza: provengo da java
Siamo OT ma...Sì è lui!!! E ci ho dovuto fare anche l'orale...ma è stato buono...pensavo peggio Ma credo che le cose in 15 anni siano cambiate: -corsi di 3 mesi, se fossero semestrali penso sarebbe meglio. Ai prof gli tocca fare (e parlo per tutti i corsi eh) l'80% di quello che facevano una volta in metà tempo (avevate semestri giusto?), con conseguente calo, da parte degli studenti, di comprensione e analisi dell'insegnamento: non si riesce a digerire una roba in 3 mesi e subito dopo altri esami...una follia... -5 appelli l'anno (poco tempo fa erano solo 4) voi come eravate messi? PS sì c'è ancora bombi!!! www.unipd.net è il sito di noi studenti ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Confronto due stringhe "dettagliato"
2008/1/20, Enrico Franchi <[EMAIL PROTECTED]>: > > On Jan 10, 2008, at 12:22 PM, Cristian Re wrote: Un algoritmo di quelli che dico > sarebbe in gradi di vedere che la parola 'sbagliata' è *molto* vicina > alla parola corretta. > > Che so... guarda la distanza di Levenshtein. sbaglio o qualcosa del genere lo usa anche google? ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] programma kde+qt, registratore radio
Salve a tutti, Il programma che voglio realizzare è già scritto per essere un semplice script per la bash che registra da internet delle radio usando mplayer e altri strumenti ma il mio intento sarebbe scriverlo in python facendo in modo che dia i comandi alla bash di linux. Per esempio un comando potrebbe essere: lame --quiet --preset radio ${output_file}.pcm ${output_file}.mp3 Oltre a questo vorrei dotarlo di interfaccia grafica usando le librerie QT per KDE... Però devo dire che: non so come dare comandi di quel genere alla bash: basta usare il modulo os o serve altro? di QT e interfacce grafiche non so assolutamente nulla (o per meglio dire un front-end)...da dove incomincio? Sostanzialmente quelle poche cose che ho trovato sono: la documentazione ufficiale di QT designer per quanto riguarda l'interfaccia grafica (http://trolltech.com/products/qt/features/designer), quest'altra cosa per dare comandi alla shell http://lists.python.it/pipermail/python/2007-April/004139.html, documentazione sulle pyqt (che a dire la verità non ho capito bene a cosa servano...) http://www.riverbankcomputing.co.uk/pyqt/ Qualcuno ha: suggerimenti, critiche, link da studiarmi, qualcosa su cui cominciare? O forse sto cercando di fare il passo più lungo della gamba? Ringrazio anticipatamente Alla prossima ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] programma kde+qt, registratore radio
Grazie per le dritte, ormai che ci sono...qualcuno dove posso trovare dei semplici esempi, funzionanti, banalissimi su programmazione che usa pyqt/qt? mi sono fatto un giro su kde-apps.org ma non ho trovato molto...(k-encfs2 è troppo complicato... kgmailnotifier già più abbordabile...) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] script per linux: .flv to .avi con ffmpeg
Salve raga, la mia alternata avventura con python continua, ho scritto questo script che trasforma tutti i file .flv in una cartella in file avi. Funziona, ma ammetto che non mi convince molto, diciamo che il codice che ho scritto fa schifo. Qualcuno riesce a darmi qualche dritta per migliorarlo? Volevo anche fare os.system.join (path, quellocheserve) invece di concatenare la path con il nome dei file #importo i moduli che servono import os import re #metto in un array i nomi dei file def tree2lista_file(tree): lista_file = [] for item in tree: lista_file=item[2][:] return lista_file def trasforma_files(lista_file): for index, f in enumerate(lista_file): #lo split mi permette di ottenere una lista con due sottostringhe una con il nome file e unacon l'estensione, di meglio non mi è venuto in mente os.system("ffmpeg -i "+ path+lista_file[index] + " " + path+lista_file[index].split(".")[0]+".avi") #variabili path="/home/ugaciaka/prova/" tree=os.walk(path) #esecuzione metodi lista_file = tree2lista_file(tree) trasforma_files(lista_file) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] script per linux: .flv to .avi con ffmpeg
Perché voglio integrare il codice con altre cosucce, insomma sperimentare un po'... Il 20/03/08, Enrico Franchi<[EMAIL PROTECTED]> ha scritto: > > On Mar 20, 2008, at 6:55 PM, ugaciaka wrote: > > > Funziona, ma ammetto che non mi convince molto, diciamo che il codice > > che ho scritto fa schifo. > > > Soprattutto mi verrebbe da chiedermi se hai bisogno di tirare a mano > Python per quello che faresti con 4 righe di bash. > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] script per linux: .flv to .avi con ffmpeg
Ho fatto così sotto consiglio: Popen(["ffmpeg", "-i" , file_vecchio, file_nuovo]) ora vorrei sapere, se volessi fare in modo di ottenere il codice di uscita come si fa? Dalla documentazione ufficiale le cose non mi sono chiare: import os import sys from subprocess import Popen import subprocess try: retcode = call("mycmd" + " myarg", shell=True) if retcode < 0: print >>sys.stderr, "Child was terminated by signal", -retcode else: print >>sys.stderr, "Child returned", retcode except OSError, e: print >>sys.stderr, "Execution failed:", e il call non viene riconosciuto... Comunque se non erro il codice 0 -> tutto ok altrimenti c'è un errore. Vorrei intercettare questa cosa e anche le eccezioni in modo da dire all'utente cosa è andato storto... 2008/3/20, Enrico Franchi <[EMAIL PROTECTED]>: > > On Mar 20, 2008, at 9:06 PM, ugaciaka wrote: > > > Perché voglio integrare il codice con altre cosucce, insomma > > sperimentare un po'... > > > Comincia a guardare subproces, per dire. modulo Python, intendo. > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Ram libera sotto Linux
Ma allora tanto vale dare un comando alla bash con free -m e con un pipe verso una semplice espressione regolare... Il 27 giugno 2008 18.24, Manlio Perillo <[EMAIL PROTECTED]> ha scritto: > Oberdan Albertoni ha scritto: > > Dovrei controllare tramite un script in python la memoria libera in una > > macchina Linux, sapete se c'e' gia' un comando o un modulo che la > > restituisce o devo lanciare il comando free tramite ad esempio os.system > > e fare il parse del risultato per prelevarmi i valori ? > > Ciao da Obe. > > > > /proc/meminfo. > > Devi comunque fare il parsing. > > > > > Manlio Perillo > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Ram libera sotto Linux
Per uno che non sa ne leggere ne scrivere in Python (non è un eufemismo, sono proprio negato!) #modulo per interfacciarlo al sistema operativo import os #Popen apre sottoprocessi from subprocess import Popen f=os.popen("free -m") for i in f.readlines(): print i, Ok qua ti da tutto il comando come dato da shell, o fai un parsing sul risultato f (che non so come si fa, se lo sai posta per piacere) oppure fai così sfruttando la shell #modulo per interfacciarmo al sistema operativo import os #modulo per usare le espressioni regolari (fra cui anche split) import re #Popen apre sottoprocessi from subprocess import Popen f=os.popen("free -m | grep buffers/cache | awk '{print $4}'") for i in f.readlines(): print i, ok ho lasciato readlines perché non so come diavolo prendere solo una riga di output (ho già detto che sono ignorante) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] programma in python su ubuntu
il reset della shell suppongo... comando reset... 2008/8/2 Lorenzo Marini <[EMAIL PROTECTED]>: > > > 2008/7/25 Manlio Perillo <[EMAIL PROTECTED]> >> >> Lorenzo Marini ha scritto: >> > Ciao >> > >> > ho implementato un programma in python che consiste in due processi che >> > si scambiano messaggi cifrati utilizzando i socket. >> > >> > Quando lo eseguo in ubuntu, al termine dell'esecuzione i caratteri della >> > shell sono tutti cambiati in maniera incomprensibile. >> > >> > A che cosa è dovuto questo? >> > >> >> Ti hanno già risposto sulla causa. >> >> Io ti indico la soluzione: eseguire `reset` (probabilmente due volte). >> >> > Grazie >> > >> > Lorenzo >> > >> > Ciao > > devo eseguire reset di che cosa? > > Grazie > > Lorenzo >> >> Manlio Perillo >> ___ >> Python mailing list >> Python@lists.python.it >> http://lists.python.it/mailman/listinfo/python > > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] ricompilare python: porta vantaggi?
Salve a tutti, mi stavo ponendo un'idea, premetto che uso linux. Se io ricompilo python in base all'architettura del processore i programmi che vengono interpretati non gireranno "meglio"? Non dico più veloci, ma magari che sfruttino meglio la CPU e la RAM. Magari ho sparato cavolate ma sarei curioso dato che ho molti programmi che girano sotto Python, basta anche aprire il codice e vedere che librerie importano per poi ricompilare anche quelle. Ciao e grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] ricompilare python: porta vantaggi?
> Hai esigenze particolari per problemi prestazionali o è solo uno > sfizio personale? > Hai colto nel segno, sfizio personale :-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] ricompilare python: porta vantaggi?
> - compilare l'interprete python ottimizzato per una macchina > probabilmente dà qualche vantaggio, anche se non mi aspetterei niente di > stratosferico Allora, io infatti pensavo di ricompilare solo l'interprete python che so scritto in C più ovviamente le librerie che vengono importate dai vari programmi. > Comunque, ugaciaka, se vuoi fare un lavoro di fino fossi in te darei > un'occhiata al fronte gentoo. (e poi facci sapere i risultati!) > > Pietro eheheh, non sono mai riuscito a installare gentoo, ora sto su archlinux. Ho appena ricompilato su 64bit, con le opzioni di gcc -march=core2 -O2 -pipe -fomit-frame-pointer per archlinux basta modifcare /etc/makpkg.conf, e nel dubbio di usare la "ricompilatura" ho riavviato il pc. Però per fare dei bench seri non saprei cosa usare. Magari scrivere uno script che stressi il processore e vederne le differenze fra python ricompilato e non. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] pxssh: pexpect.TIMEOUT: Timeout exceeded in read_nonblocking
Salve, ho bisogno di realizzare uno script che acceda a varie macchine linux con ssh ma non voglio utilizzare l'autenticazione con chiave vuota. Ho visto pxssh e pensavo facesse proprio al caso mio ma non funziona tanto bene. Esempio: #!/usr/bin/env python import pxssh import getpass s = pxssh.pxssh() s.login ("192.168.0.3", "utente", "pw") s.logout() Non funziona: Traceback (most recent call last): File "sshbrute2.py", line 6, in s.login ("192.168.0.3", "utente", "pw") File "/usr/lib/python2.6/site-packages/pxssh.py", line 243, in login if not self.synch_original_prompt(): File "/usr/lib/python2.6/site-packages/pxssh.py", line 134, in synch_original_prompt self.read_nonblocking(size=1,timeout=1) # GAS: Clear out the cache before getting the prompt File "/usr/lib/python2.6/site-packages/pexpect.py", line 824, in read_nonblocking raise TIMEOUT ('Timeout exceeded in read_nonblocking().') pexpect.TIMEOUT: Timeout exceeded in read_nonblocking(). Ho cercato con google e ho trovato questo: http://bytes.com/topic/python/answers/760027-read_nonblocking-error-pxssh e ho modificato /usr/lib/python2.6/site-packages/pexpect.py come scritto cioé alla prima della prima istanza di read_nonblocking() ho aggiunto il sendline e lo sleep. Solo che ora solleva questa eccezione: Traceback (most recent call last): File "sshbrute2.py", line 6, in s.login ("192.168.0.3", "utente", "pw") File "/usr/lib/python2.6/site-packages/pxssh.py", line 222, in login raise ExceptionPxssh ('password refused') pxssh.ExceptionPxssh: password refused Come risolvere? Grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] pxssh: pexpect.TIMEOUT: Timeout exceeded in read_nonblocking
Il 18 settembre 2009 15.31, Ivo Bellin Salarin ha scritto: > più che con chiave vuota, dovresti provare con chiave pubblica :-) sì intendevo quello ma non voglio aver a che fare con chiavi pubbliche vuote ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] pxssh: pexpect.TIMEOUT: Timeout exceeded in read_nonblocking
Alla fine ho usato solo pexpect senza aiutarmi con pxssh. Ho dovuto scrivere più codice ma va bene lo stesso... Il 18 settembre 2009 15.33, ugaciaka ha scritto: > Il 18 settembre 2009 15.31, Ivo Bellin Salarin > ha scritto: >> più che con chiave vuota, dovresti provare con chiave pubblica :-) > > sì intendevo quello ma non voglio aver a che fare con chiavi pubbliche vuote > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] paramiko: raise SSHException('Unknown server %s' % hostname)
Salve ragazzi, dopo aver provato pxssh che con il suo piccolo enorme bug mi ha fatto desistere, usato pexpect che funziona ma mi pare poco pythonico da vedere ho deciso di provare paramiko come consigliato per fare qualcosa di più elegante. Semplice script: import paramiko ssh = paramiko.SSHClient() ssh.connect("192.168.0.3", username="utente", password="password") Ma mi risponde questo (sia che metta username e password fasulli come l'esempio sia che siano corretti): /usr/lib/python2.6/site-packages/Crypto/Hash/SHA.py:6: DeprecationWarning: the sha module is deprecated; use the hashlib module instead from sha import * /usr/lib/python2.6/site-packages/Crypto/Hash/MD5.py:6: DeprecationWarning: the md5 module is deprecated; use hashlib instead from md5 import * Traceback (most recent call last): File "paramiko1.py", line 3, in ssh.connect("192.168.0.3", username="utente", password="password") File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 306, in connect self._policy.missing_host_key(self, hostname, server_key) File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 83, in missing_host_key raise SSHException('Unknown server %s' % hostname) paramiko.SSHException: Unknown server 192.168.0.3 L'host è connesso, sshd è attivo, la porta 22 è aperta, non c'è nessun firewall e da shell riesco ad accederci tranquillamente. Ho python 2.6 su distro linux. Mi sfugge qualcosa? Grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] paramiko: raise SSHException('Unknown server %s' % hostname)
> Si. Mancano le hostkeys. > prova a fare prima un ssh. > ssh nomeute...@host > entra e poi usa paramiko. Da li in poi potrai usare sempre paramiko. O > altrimenti potrai cerca un modo su paramiko per fare l'analogo. Mi ero dimenticato di dire che mi sono già loggato per non scatenare l'eccezione... ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] paramiko: raise SSHException('Unknown server %s' % hostname)
> Mi ero dimenticato di dire che mi sono già loggato per non scatenare > l'eccezione... mentre scrivevo questo mi si è accesa una lampadina accecante che puntava sulla documentazione di paramiko. import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.0.3', username='utente', password='password') Penso non serva tradurre quella riga in più. Tradotto: risolto (anche se in teoria doveva funzionare anche prima). Saluti ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] threads
> premetto che non ho alcuna esperienza con i threads. male, se non sai cosa è una regione critica o un semaforo privato ti conviene dare una lettura veloce... :-) > vorrei iniziare a capire come poterli utilizzare per sfruttare le > architetture multicore delle moderne cpu e, quindi, migliorare le > prestazione di uno script su cui sto lavorando. http://masci.wordpress.com/2009/03/20/i-thread-python-ed-il-global-interpreter-lock/ questo link spiega tutto... Ciao ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Parsing html
> Quale approccio posso usare in python, esistono dei > moduli per fare il parsing di file html.. che magari fanno già > in automatico un processo simile di definizione dei padri e figli?? credo che BeautifulSoup faccia al caso tuo (ma ce ne sono tanti altri, questo però mi pare più completo) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] salvare file da stream TCP
Salve ragazzi, Ho un vecchissimo programma che lancia via TCP/IP dei file. Vorrei scrivere un semplice script che intercetti questo stream e salvi questi file in una directory. Non so cosa usare a dire la verità, ho visto SocketServer ma non so se fa al caso mio. Qualcuno ha del semplice codice da proporre? Anche cercando con google non trovo niente che si avvicini a quello che voglio realizzare. Grazie mille. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] salvare file da stream TCP
Rispondo un po' a tutti e intanto vi ringrazio per le risposte qui datemi. Da quanto ne so, scusate ma non posso proprio essere più preciso, c'è un software (sviluppato tanto tanto tempo fa, installato in una galassia lontana lontana) che spedisce via TCP/IP dei file xml (più che altro è un flusso). Il server che intercetta il tutto esiste già: è scritto in Delphi 6 e usa i componenti Indy, per sapere quando finisce un file e ne inizia un altro (se non ho mail interpretato il codice) controlla man mano se c'è la stringa FINE_FILE (il client remoto la inserisce apposta questa stringa). Purtroppo dopo anni di onorato servizio, forse per qualche aggiornamento windows ma nessuno ha capito perché e io ho rinunciato, tutto questo non funziona più perché vengono sollevate eccezioni di una dll di windows (ntdll.dll). Ho controllato con Wireshark e il flusso arriva corretto, quindi è colpa del server. Visto che a noi serve anche solo un semplice script che salvi questi file da qualche parte ho pensato subito a Python, domani leggo meglio questi esempi http://docs.python.org/library/socket.html#example ma non vedo come "spezzare" all'arrivo di una stringa ben precisa ... Alla luce di queste precisazioni, che non ho potuto dare prima purtroppo, chiedo ulteriori lumi a riguardo. Grazie :-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] salvare file da stream TCP
Il 01 settembre 2010 09:02, Marco Dalla Stella ha scritto: > Il 31 agosto 2010 18:02, Giampaolo Rodolà ha scritto: >> In pratica devi fare un server. >> Puoi dare un occhio a SocketServer, asyncore, socket e Twisted. >> Se sei totalmente a digiuno di questi concetti puoi cominciare con questo: >> http://docs.python.org/library/socket.html#example > > Consiglierei anch'io Twisted. E' un po' "complesso", ma se lo > padroneggi può tornarti molto utile in futuro. Eh, twited è, purtroppo, troppo per il poco che devo fare e farò. Però sono riuscito a fare qualcosa di usabile con http://docs.python.org/library/socket.html#example, devo solo provare a metterlo sotto stress Grazie a tutti ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] salvare file da stream TCP
Io ho fatto così ... che sia giusto o meno ... funziona (occhio che ci sono le righe per aprire e leggere file) # Echo server program import socket HOST = '' # Symbolic name meaning all available interfaces PORT = 8001 # Arbitrary non-privileged port while 1: # Connessione s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() print 'Connected by', addr # Ricevo i dati data = conn.recv(1024) if data: filename = data f = open(filename,"r") print f.readline() # Chiudo la connessione conn.close() # Sarebbe la risposta #conn.send(data) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] inviare messaggi fra programmi/processi
Salve, sto lavorando sotto Linux (Ubuntu, Arch Linux quindi distro molto aggiornate). Vorrei scrivere un piccolo script in Python che invii "messaggi" ad un altro programma (che credo non sarà in Python) Non ho mai fatto una cosa del genere e non so neanche cosa cercare. Praticamente dovrei far dialogare due progammi/processi. Uno client (Python che invia i messaggi) e uno non-python che li riceverà. Cosa mette a disposizione Linux che è già wrappato da python per ottenere ciò? Grazie -- ugaciaka http://about.me/ugaciaka ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] inviare messaggi fra programmi/processi
Il 28 ottobre 2011 14:49, Manlio Perillo ha scritto: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Il 28/10/2011 14:05, Daniele Varrazzo ha scritto: >> On Fri, 28 Oct 2011 13:48:32 +0200, Manlio Perillo >> wrote: >> >>> Non dimentichiamo le named pipe (aka FIFO), che, nel caso in cui la >>> dimensione dei messaggi è *sempre* minore di PIPE_BUF, dovrebbe essere >>> abbastanza semplice da gestire. >> >> Vero, più semplice di socket e shmem. >> >> >>> Resta solo da decidere come serializzare i dati, ma questo dipende dal >>> tipo di messaggi che devi inviare. >>> >>> Questo protocollo sembra interessante: >>> http://msgpack.org/ >> >> Veramente uno dei vantaggi di usare dbus sarebbe quello che è già >> tipizzato: un programma espone una funzione e l'altro la chiama da remoto. >> voglio dire, in Windows c'è SendMessage ... da quanto mi viene scritto la cosa più semplice è usare dbus con python su lnux. L'applicativo è per me, non mi importa assolutamente nulla se funziona solo su linux. Gli altri sistemi operativi per quello che devo fare non esistono. -- ugaciaka http://about.me/ugaciaka ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] inviare messaggi fra programmi/processi
Il 30 ottobre 2011 16:43, Enrico 'Henryx' Bianchi ha scritto: > On Friday, October 28, 2011 08:54:09 AM ugaciaka wrote: > >> Vorrei scrivere un piccolo script in Python che invii "messaggi" ad un >> altro programma (che credo non sarà in Python) > > Domande di rito (che, da quello che ho visto, sono state bellamente ignorate > in fase di discussione): > > - Le due applicazioni girano sullo stesso pc? sì > - Che tipo di messaggio? in realtà pensavo di poter mandare un array con qualche dato. Mi spiego meglio: ho configurato gammu-smsd http://wammu.eu/smsd/ per ricevere automaticamente SMS da un cellulare direttamente sul mio computer che monta una distribuzione GNU/Linux. Ho visto che gammu-smsd posso gestirlo invece con python http://wammu.eu/docs/manual/python/smsd.html Quindi pensavo di fare una parte servizio in Python che, invece di usare gammu-smsd standalone che salva gli SMS in formato txt su un directory, usi gammu-smsd come classe e spedisca come qualche informazione (oltre il SMS che arrivano) "messaggio" a un applicativo scritto con un altro linguaggio. -- ugaciaka http://about.me/ugaciaka ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] copytree e ignore_patterns
Ho provato una cosa del genere with open ('ignorare', 'r') as myfile: data=myfile.read().replace('\n', ' ') copytree(source, dest, ignore=ignore_patterns('*.png', '*.xcf', '*.eps', '*.svg', '*.jpg', data)) ma a quanto pare ignore_patterns non prende in carico la mia lista di stringhe che prendo da un file, il file è una cosa del genere: *.pdf *.log nessun errore ma solo non esclude i film all'interno del mio file, si può fare? grazie -- ugaciaka http://about.me/ugaciaka ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] copytree e ignore_patterns
giusto, al posto di una stringa creare una lista, non ci avevo pensato, grazie! 2013/5/21 Daniele Varrazzo > On Tue, 2013-05-21 at 15:02 +0200, ugaciaka wrote: > > Ho provato una cosa del genere > > > > with open ('ignorare', 'r') as myfile: > > data=myfile.read().replace('\n', ' ') > > > > copytree(source, dest, ignore=ignore_patterns('*.png', '*.xcf', '*.eps', > > '*.svg', '*.jpg', data)) > > > > ma a quanto pare ignore_patterns non prende in carico la mia lista di > > stringhe che prendo da un file, il file è una cosa del genere: > > *.pdf > > *.log > > > > nessun errore ma solo non esclude i film all'interno del mio file, si può > > fare? > > Prova: > > data = myfile.read().split() > ... > copytree(source, dest, ignore=ignore_patterns('*.png', '*.xcf', > '*.eps', '*.svg', '*.jpg', *data)) > > > -- > Daniele > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- ugaciaka http://about.me/ugaciaka ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python