Python FTP получить строки - проблемы с производительностью

1

Я пытаюсь извлечь строки из файла через FTP-соединение, используя модуль ftplib python. Для чтения файла размером 1 Гб требуется около 10 минут. Мне было интересно, есть ли какие-то другие способы быстрее читать строки.

Я должен был включить некоторый код, чтобы показать, что я делаю:

ftp.HostName = 'xxx'
ftp.Userid = 'xxx' #so on

ftp.conn.retrlines('RETR ' + fileName, process)
  • 0
    Нет. Что заставляет вас думать, что ваше приложение на Python работает медленно? Вы пробовали другие FTP-клиенты и измеряли время, которое они занимают?
Теги:
performance
ftp

2 ответа

1

Получение удаленных ресурсов обычно связано с вашей пропускной способностью, а протокол FTP выполняет достойную работу по ее использованию.

Вы уверены, что не насыщаете сетевое соединение? (что такое сетевая связь между клиентом, работающим с ftplib и сервером, который вы загружаете?)

Задняя часть конверта calc:

1 ГБ /10 мин = ~ 1,7 МБ/с = ~ 13 Мбит/с

Таким образом, вы загружаете 13 мегабит. Эта достойная скорость для удаленного соединения DSL/Cable/WAN, но, очевидно, довольно низкая, если все это локальная сеть.

  • 0
    +1 за хороший ответ. Я предлагаю вам использовать правильную прописную букву, так как это общая практика в переполнении стека.
  • 0
    фиксированные колпачки .. тоже привыкли к irc :)
Показать ещё 1 комментарий
0

Можете ли вы показать пример минимального кода того, что вы делаете? FTP предназначен для транспортировки файлов, поэтому извлечение строк из удаленного файла не обязательно так же эффективно, как передача файла целиком один раз и его чтение локально.

Помимо этого, подтвердили ли вы, что вы можете быть быстрее в этом соединении?

EDIT: если вы попробуете следующее, и это не так быстро, то вы ограничены своей ОС или вашим соединением:

ftp.conn.retrbinary('RETR ' + fileName, open(temp_file_name, 'wb').write)

Предполагается, что режим текстового FTP может быть несколько менее эффективным (на стороне сервера), что может быть ложным или минимальной релевантности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню