Python 檢測本地檔案是否在下載 否就重新拉取
# 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 = ''
r = s.post(url, data=data)
dates={
'XXX':'XXXX',
'XXX':'XXX'
}
a = s.post("",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 是借鑑別人說意外中斷可以釋放掉呼叫該檔案
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 = ''
r = s.post(url, data=data)
dates={
'XXX':'XXXX',
'XXX':'XXX'
}
a = s.post("",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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢測input file檔案是否上傳
- Python檢驗一個檔案是否存在,如果不在就自己填寫內容。Python
- Python實用方法之讀取本地檔案Python
- WKWebView載入本地檔案WebView
- vue專案下載檔案,重新命名,監測進度。Vue
- Python3中如何檢查檔案是否存在?Python教程!Python
- servlet能否讀取本地檔案???Servlet
- Python3檢查檔案是否存在的常用方法!Python
- envoy 本地拉取遠端程式碼
- Git拉取遠端分支到本地Git
- Git強制拉取覆蓋本地Git
- Python讀取、儲存、檢視.mat檔案Python
- Python讀取大檔案的"坑“與記憶體佔用檢測Python記憶體
- 上拉重新整理,下拉載入
- 讀取本地Excel檔案生成echartsExcelEcharts
- JQuery讀取本地json檔案jQueryJSON
- Android檔案下載之進度檢測Android
- spark直接讀取本地檔案系統的檔案Spark
- Python3如何檢查檔案或資料夾是否存在?Python
- python怎麼檢測字串是否有字母?Python字串
- python檢測圖片是否存在指令碼Python指令碼
- Flutter——下拉重新整理,上拉載入Flutter
- python 判斷檔案是否存在Python
- python-magic:檢測檔案的MIME型別Python型別
- 測試是否需要一票否決權
- 忽略檢測png檔案
- 檢測檔案到末尾
- 使用 PHP 進行建立檔案並在下載後進行刪除PHP
- Mac 重新整理本地 DNS 快取MacDNS快取
- javascript檢測iframe是否已經載入完畢JavaScript
- 使用PowerShell比較本地文字檔案與Web上的文字檔案是否相同Web
- 用 Python 批量檢查 sqlite/db3 檔案是否損壞(qbit)PythonSQLite
- python讀取檔案——python讀取和儲存mat檔案Python
- Remix本地化,載入本地合約檔案,本地連結RemixREM
- Linux ossutil 拉取所有檔案到伺服器Linux伺服器
- Windows拉取linux上面檔案的簡單方法WindowsLinux
- Flutter 下拉重新整理上拉載入更多Flutter
- flutter - listView 下拉重新整理 上拉載入FlutterView