# coding:utf-8
import os
from os.path import join,getsize
import requests
import threading
import datetime
#触发器10s 选择 crontab 5分钟跑一次所以取消了
#def comparefilesize():
# print("hello world")
# global t #Notice: use global variable!
# t = threading.Timer(10.0, comparefilesize)
# t.start()
#t = threading.Timer(10.0, comparefilesize)
#t.start()
#免登陆 传递参数,重新下载
def down():
#保持会话session
s = requests.session()
data = {'username': 'XXX', 'password': 'XXX'}
url = 'http://XXXX/login'
r = s.post(url, data=data)
dates={
'XXX':'XXXX',
'XXX':'XXX'
}
a = s.post("http://XXX",data=dates)
print(a.status_code)
print(a.json())
#输出文件大小字节
def fileSize(bytes):
try:
bytes = float(bytes)
except:
print("传入的字节数错误")
return "ERROR"
return "%f" % (bytes)
#获取文件大小
def getFileSize(path):
try:
size = os.path.getsize(path)
return fileSize(size)
except Exception as error:
print(error)
#获取最新文件大小
def getFiledir():
base_dir = '
F:
\\
untitled1'
#列出目录下文件
l = os.listdir(base_dir)
#排序 以下是参看大神的解释
#sorted([(x,os.path.getctime(os.path.join(p,x))) 实际是获取文件名的元祖 os.path.join只是拼接该文件
# p 为路径 x为文件名 getctime是文件创建时间 getmtime为文件修改时间 getatime是文件访问时间
# for x in os.listdir(p) if os.path.isfile(os.path.join(p,x)) 判断在改路径下的文件 os.path.isfile
# ],
# key = lambda i: i[-1] 可参见 sorted(d.items(), key=lambda x: x[1]) d是一个元祖 这可通value排序
# )
l.sort(key=lambda fn:os.path.getmtime(base_dir+"\\"+fn) if not os.path.isdir(base_dir+"\\"+fn) else 0 ) #排序语句
#下面是输出文件修改时间
d = datetime.datetime.fromtimestamp(os.path.getmtime(base_dir+"\\"+l[-1]))
#输出排序最新的文件
print(l[-1])
return l[-1]
if __name__=="__main__":
file = open('
F:\\untitled1\\2016-12-01-161615','r') #搜索比对文档初始值大小
try:
number1 = file.read()
finally:
file.close()
dir_p = getFiledir() # 获取最新文档名
number2 = getFileSize('
F:\\untitled1\\'+dir_p) #获取 最新文档 大小
print(number2)
print(number1)
if number1 == number2: #如果新文件大小和本地文件一致 就认为该文件没有下载重新下载
down()
print("down down down ")
log = open('
F:
\\
untitled1
\\downlog','a') #打印日志
log.write(number2) #打印大小到日志上
else:
try:
file2 = open('
F:
\\
untitled1
\\
2016-12-01-161615
','w') # 不等于就记下当前文件的大小
file2.write(str(number2))
finally:
file2.close()
#其中try finally 是借鉴别人说意外中断可以释放掉调用该文件
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30629069/viewspace-2131467/,如需转载,请注明出处,否则将追究法律责任。