Найти - Пользователи
Полная версия: Статус закачиваемого файла
Начало » Python для новичков » Статус закачиваемого файла
1
Artem
Допустим мне надо сделать чего-то с файлом, а файл лежит на ftp - сервере. Как мне можно проверить что файл в данный момент не докачивается в смысле его на сервер не заливают?
Спасибо за внимание
diam123
import time
import ftplib

host = "ftp.yandex.ru"
user = "user"
passwd = "passwd"
filename = "movie.avi"

conn = ftplib.FTP(host, user, passwd)

def is_uploading(filename):
size_1 = conn.size(filename)
time.sleep(3)
size_2 = conn.size(filename)
if size_2 != size_1:
return True
else:
return False

if is_uploading(filename):
print u"Файл {0} Качается :(".format(filename)
Как-то так по идее.
Проверить не на чем, так что возможны ошибки
expee
Проверяй по размеру. Через каждые x секунд проверяй - не увеличился ли размер файла.
Ferroman
Есть ещё команда “MDTM” - возвращает время последней модификации.
Artem
Наверное я неправильно выразился: для программы файл находиться на той же машине, просто этот файл могут в этот момент заливать по FTP.
Последняя модификация: сначала так и пробовал, но выяснилось что последняя модификация может и прошлый год показывать
# -*- coding: cp1251 -*-
import os
import stat
import time
import datetime

fstat = os.stat ("d:\\ftp\\movie.avi" )

st_mtime = fstat.st_mtime # время последней модификации
t = datetime.datetime.now()
curr_time=time.mktime(t.timetuple())

if (curr_time-st_mtime) < 2:
print 'качается!'
print curr_time-st_mtime

else:
print 'закачен!'
print curr_time-st_mtime
Получается здесь надо просто заменить на проверку по размеру? Спасибо всем ответившим.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB