Я попытался написать скрипт для доступа к файлу .csv.gz с ftp-сервера и записать содержимое в файл .csv на том же сервере.Этот метод, кажется, работает нормально, пока файл меньше 100 МБ, из-за того, что он терпит неудачу, вызывая ошибку памяти.Я не смог найти способ просто извлечь файл .csv, чтобы он читал содержимое файла (список кортежей) построчно и записывал его в новый файл.
Есть ли более эффективный способ сделать это или даже просто извлечь файл .csv непосредственно из файла .csv.gz?
def gz_unzipper():
hostname = "servername"
directory = "path"
input_file = directory + "filename.csv.gz"
output_file = directory + "filename.csv"
ftp = FTP(hostname)
ftp.login (username, password)
ftp.cwd(directory)
f = gzip.open(input_file, 'r')
gz_content = f.read()
lines=csv.reader(StringIO.StringIO(gz_content))
output_file = open(output_file, 'w')
for line in lines:
line = repr(line)[1:-1]
line = line.replace("'","")
line = line.replace(" ","")
output_file.write(line + "\n")
output_file.close
f.close()