Forum
>>
Principianti
>>
[risolto] non riesco a inviare file su Altervista con ftplib
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da LaPa |
2018-11-03 14:32:43 - [risolto] non riesco a inviare file su Altervista con ftplib
|
Salve a tutti.
non riesco ad inviare un file di testo (creato per prova) via ftplib su un sito di altervista. il codice usato è il seguente: import os import ftplib session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********') nomefile="/home/pi/test.txt" session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024) Copy L'errore è Traceback (most recent call last): File "/mnt/usbhd/prove/ProvaFTP.py", line 58, in <module> session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024) File "/usr/lib/python3.4/ftplib.py", line 503, in storbinary with self.transfercmd(cmd, rest) as conn: File "/usr/lib/python3.4/ftplib.py", line 398, in transfercmd return self.ntransfercmd(cmd, rest)0 File "/usr/lib/python3.4/ftplib.py", line 364, in ntransfercmd resp = self.sendcmd(cmd) File "/usr/lib/python3.4/ftplib.py", line 272, in sendcmd return self.getresp() File "/usr/lib/python3.4/ftplib.py", line 245, in getresp raise error_perm(resp) ftplib.error_perm: 553 Impossibile aprire quel file: File o directory non esistente Copy Ho controllato e il file è nella posizione giusta e possiede tutti i permessi: "-RWXRWXRWX" con un file di bash riesco a mandare il file con il seguente codice: #!/bin/bash /usr/bin/ftp -inv rpiplant.altervista.org <<ENDFTP user rpiplant ********* bin #provo a inviare un file di testo in pi/home lcd /home/pi put test.txt test1.txt ho provato anche a sostituire session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********') con session=ftplib.FTP('ftp://rpiplant.altervista.org','rpiplant','**********') e mi dà il seguente errore: Traceback (most recent call last): File "/mnt/usbhd/prove/ProvaFTP.py", line 51, in <module> session=ftplib.FTP('ftp://rpiplant.altervista.org','rpiplant','aPQq7jNJpWzS') File "/usr/lib/python2.7/ftplib.py", line 120, in __init__ self.connect(host) File "/usr/lib/python2.7/ftplib.py", line 135, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/usr/lib/python2.7/socket.py", line 553, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): gaierror: [Errno -2] Name or service not known Dove sbaglio? Grazie per l'attenzione Un saluto LaPa --- Ultima modifica di LaPa in data 2018-11-15 23:12:56 --- |
|
Scritto da LaPa |
2018-11-15 23:12:26 - Re: [problema] non riesco a inviare file su Altervista con ftplib
|
Carissimi dopo tanto peregrinare ho trovato la risposta: facevo un errore di sintassi. Dopo STOR non dovevo concatenare, pertanto la sintassi corretta è:
import os import ftplib session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********') nomefile="/home/pi/test.txt" session.storbinary("STOR nomefile", open (nomefile, "rb"), 1024) In questa maniera mi ritrovo il file test.txt col nome nomefile su altervista. se voglio chiamarlo test.txt la sintassi diventa: import os import ftplib session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********') nomefile="/home/pi/test.txt" session.storbinary("STOR test.txt", open (nomefile, "rb"), 1024) Saluti LaPa --- Ultima modifica di LaPa in data 2018-11-16 15:58:23 --- --- Ultima modifica di LaPa in data 2018-11-16 16:00:07 --- |
|
Scritto da Daniele aka Palmux |
2018-11-16 15:45:51 - Re: [risolto] non riesco a inviare file su Altervista con ftplib
|
Grande, trovare un errore da soli è sempre il più appagante dei risultati.
Ricordati sempre di usare il tasto code, quello che trovi prima della tavolozza dei colori, per formattare il codice. Cya |
|
Scritto da LaPa |
2018-11-17 16:35:06 - Re: [risolto] non riesco a inviare file su Altervista con ftplib
|
Forse questa volta è veramente tutto chiaro!
Dopo alcune prove ho capito di più riguardo all'errore che facevo Questo è il pezzo di codice che mi dava errore quando non mi funzionava. session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024) Dopo "STOR ", se non ho capito male, si indica come deve essere nominato il file su Altervista. Dunque se vogliamo nominarlo con un nome tipo Test.txt allora semplicemente scriveremo "STOR Test.txt" al posto di "STOR " +nomefile Se invece il nome del file che deve apparire su Altervista è una variabile, allora va bene quella sintassi "STOR " +nomefile. Il mio codice non funzionava perché indicavo con un' unica variabile (nomefile) 2 cose diverse: 1) dove è posizionato nel computer e come si chiama il file che si deve spostare su Altervista 2) come deve essere nominato il file una volta inviato su Altervista e siccome nomefile era una variabile che conteneva oltre al nome del file anche l'indirizzo assoluto allora mi dava errore. Pertanto se il voglio spostare il file che sta in home/pi e si chiama test.txt e voglio che questo venga rinominato con una variabile e non con un nome fisso devo creare 2 variabili, ad esempio: nomefile che indica il file da spostare e nomefile1 che rinomina il file su altervista. In quel caso il codice sarà: import os import ftplib session=ftplib.FTP('rpiplant.altervista.org', 'rpiplant','********') nomefile="home/pi/test.txt" nomefile1="test2.txt" session.storbinary("STOR " + nomefile1, open (nomefile, "rb"), 1024) session.quit() Funziona!!! Capire bene l'errore è stata una soddisfazione!!! LaPa --- Ultima modifica di LaPa in data 2018-11-17 23:28:51 --- |
|
Scritto da Daniele aka Palmux |
2018-11-17 21:35:19 - Re: [risolto] non riesco a inviare file su Altervista con ftplib
|
|
Pagina: 1
Esegui il login per scrivere una risposta.