Сценарии Python истекают, когда я копирую слишком много файлов - PullRequest
0 голосов
/ 07 июня 2011

У меня есть скрипт Python, который копирует кучу файлов с анонимного FTP-сайта. Когда я пытаюсь скопировать несколько тысяч, сценарий останавливается до того, как все файлы могут быть скопированы. Однако, если я запускаю сценарий несколько раз и копирую только несколько сотен файлов каждый раз, это не проблема. Файлы представляют собой текстовые файлы и занимают около 10 КБ места каждый. Вот мой код, когда я зашел на сайт ftp:

for row in rows:
       stationFilePrefix = "%s" % (row[0])
       stationFile =  stationFilePrefix + ".dly"
       f = open(stationFile,"wb")
       ftp.retrbinary("RETR " + stationFile,f.write)
       f.close()

Есть ли у кого-нибудь предложения о том, как получить все файлы одновременно без истечения времени ожидания сценария? Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

Блокирует ли ftp.retbinary () при его вызове? Если нет, это означает, что одновременно открывается слишком много соединений, и сеть не может обработать их все.

0 голосов
/ 07 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...