python - descargar - selección de archivo ftplib
ftp python ejemplo (1)
Dice el manual
Para descargar un archivo, use ftp.retrlines (''RETR'' + nombre de archivo)
Esto es lo que hago:
ftp.retrbinary(''RETR media/backups/andrey.txt'', open("file_to_get.txt", ''a+'').write)
¿Podría alguien recomendar cómo poner la variable de nombre de archivo, previamente añadida vía raw_input, después del comando "RETR"? Usó% s pero esto no funciona, se procesa como una parte de un nombre de archivo.
ftp.retrbinary(''RETR %s'', open("file_to_get.txt", ''a+'').write) %raw_input("print file name")
produce esto:
c:/>python ftp_client.py
Enter host95.31.8.52
drwxrwxrwx 61 99 102 32768 Sep 14 01:39 backpl
drwxrwxrwx 19 99 102 4096 Sep 7 13:47 media
drwxrwxrwx 2 99 102 4096 Jul 2 11:15 naswebsite
Traceback (most recent call last):
File "ftp_client.py", line 12, in <module>
ftp.retrbinary(''RETR %s'', open("file_to_get.txt", ''a+'').write) %raw_input("p
rint file name")
File "C:/Python27/lib/ftplib.py", line 399, in retrbinary
conn = self.transfercmd(cmd, rest)
File "C:/Python27/lib/ftplib.py", line 361, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "C:/Python27/lib/ftplib.py", line 330, in ntransfercmd
resp = self.sendcmd(cmd)
File "C:/Python27/lib/ftplib.py", line 244, in sendcmd
return self.getresp()
File "C:/Python27/lib/ftplib.py", line 219, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Can''t open %s: No such file or directory
c:/>
Esto podría funcionar
filename = ''andrey.txt''
path = "media/backups/"
ftp.cwd(path)
ftp.retrbinary("RETR " + filename ,open(filename, ''a+'').write)