Как прочитать файл с FTP-сервера типа.sec.gz в Python

Я пытаюсь прочитать и сохранить файл с именем xx.sec.gz. Он загружает эту часть в порядке. Но данные, представленные в ней, совершенно другие (не в состоянии читать). Я использовал retrbinary..... кроме retrbinary есть любой другой режим, присутствующий в python для получения данных с ftp-сервера.

Мой код:

from ftplib import FTP
import zipfile,gzip

ftp = FTP('ipaddress')
ftp.login('username','password')
filen='xx.sec.gz'
ftp.retrbinary('RETR filen', gzip.open('C:\\test\\'+filen, 'wb').write)
ftp.quit()

2 ответа

Решение

Нужно ли нам открывать файл во время просмотра как gzip.open(...)? Если файл уже в *.gz, я думаю, просто скачайте (bin) файл с помощью open(...). Write, а затем распакуйте его с помощью gzip.open.

Я хочу получить доступ к переменной функции вне функции в Python

Мой код:

    def Connect():
        ftp=FTP(ipaddress)
        ftp.login(username,password)
        print "File List:"
        files=ftp.dir()

        #Something

        monthDict = {'January':'1', 'February':'2', 'March':'3', 'April':'4', 'May':'5', 'June':'6', 
                                    'July':'7', 'August':'8', 'September':'9', 'October':'10', 'November':'11', 'December':'12'}
        month_all = monthDict[month_all]
        Date=day_all+"/"+month_all+"/"+year_all
        print Date


    Connect()
    print Date

Вывод показывает:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-18-8a412f9418a5> in <module>()
      1 Connect()
----> 2 print Date

NameError: name 'Date' is not defined
Другие вопросы по тегам