Я использую этот код для загрузки myfile.txt со своего компьютера с Windows на FTP-сервер. после загрузки скрипт удаляет файл на моем локальном компьютере (я не удаляю его на ftp).
try:
ftp = FTP(ftp.host.com)
ftp.login(your_username, your_password)
file = open(myfile.txt, "rb")
ftp.storbinary('STOR myfile.txt', file)
print 'STORing File now...'
ftp.quit()
file.close()
subprocess.Popen('del myfile.txt', shell=True)
print 'File deleted'
except all_errors:
print 'An error occured'
Этот код работает, но он ненадежен! При каждой ~ 10-й загрузке мой скрипт зависает при сохранении файла.
print 'STORing File now...' # So I just get 'STORING File now...'
Файл не большой и должен быть загружен в течение нескольких секунд, но мне часто приходится ждать час или два, и только тогда выдается исключение:
print 'An error occured'
Если бы исключение было выдано «раньше», было бы неплохо, чтобы я мог просто возобновить загрузку (например, в цикле while). Поскольку мне нужно, чтобы этот файл был загружен как можно скорее, мне нужно ускорить загрузку файла (я не хочу ждать так долго, пока генерируется исключение)
Вторая проблема: иногда это происходит: после успешной загрузки файла сценарий не может удалить файл на моей локальной машине, потому что «какой-то другой процесс уже обращается к нему» <- я думаю, что ftplib не «выпустил» файл. Что я могу сделать, чтобы предотвратить это? </p>
Я ищу лучшее / надежное простое решение для загрузки файлов. У кого-нибудь есть идея?
Спасибо!