La descarga de archivos desde un servidor FTP usando Python, pero no abrir archivos después de una descarga

Gavya Mehta:

Estoy usando Python para descargar archivos desde un servidor FTP y soy capaz de descargar los archivos, pero cuando abro los archivos que parecen ser dañado o no se abren archivos como canciones o archivos JPG están bien, pero los documentos de trabajo, hojas de Excel, PDF y archivos de texto no se descarga correctamente.

Lo que sigue es mi código:

from ftplib import FTP
ftp = FTP()
ftp.connect(ip_address,port)
ftp.login(userid,password)
direc='directory path'
ftp.cwd(direc)
doc='doc.txt' or xlsx or pdf or jpg etc
download_path='path to download file on desktop'
file=open(download_path+ doc,'wb')
ftp.retrbinary(f"RETR {doc}", file.write)

Soy capaz de descargar los archivos necesarios, pero la mayoría de ellos son neing dañado. ¿Qué cambios debería hacer para hacer que el código.

t3hSeb:

no se puede probar FTP en el momento pero lo que veo es un problema con la apertura de su archivo y no se cierre.

Opción A:

file=open(download_path + doc,'wb')  # add '+' to append instead of overwriting
...
...
file.close()

Opción B (gestor de contexto, útil ya que cierra el archivo como termine arriba):

with open(download_path + doc,'wb') as file:
    file.write(*args, **kwargs)

En cuanto al uso de módulo ftplib, una excelente respuesta en la siguiente post ftp.retrbinary () ayuda pitón por steveha .

En cuanto a la apertura y escribir en un archivo usando gestor de contexto, consulte Cómo abrir un archivo utilizando el abierto con la declaración , y el manejo de excepciones (Python 3 documentación) , citado por sir-snoopalot

Compruebe también la ftplibdocumentación del módulo para más aclaraciones.

Espero que esto ayude.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=402295&siteId=1
Recomendado
Clasificación