Как прочитать файл с 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