將檔案讀取指標fd移至到檢查點對應的內容處 # check point 的規則為,讀取檔案一行或者多行,進行操作後,將此一行或多行送入 #
檢查檔案check_point中。以後再次執行程式,即可從該檢查點處繼續執行。 def gocheckpoint(fd,check_point): if
not os.path.isfile(check_point): f_check = open(check_point,』w』)
f_check.close() f_check = open(check_point,』r』) lines = f_check.readlines() if
len(lines) > 0: check_content = lines[-1] #找到檢查點最後一行 check_content =
check_content.strip(『 /n/r』) # go to check point while true: content =
fd.readline() if content == 『』: # eof raise checkpointmisscontenterror if
content.strip(『 /n/r』) == check_content: break f_check.close()#關閉檢查點
有了上面一段還是不夠的 大專欄 python設定檢查點簡單實現,需要下面的**補充:
偽** def download(downloadlist,sleep_time): if os.path.isfile(downloadlist):
f = open(downloadlist) # check_point file name,這裡為自動生成乙個檢查點檔案 check_point =
file[0:file.rfind(『.』)]+』_check.txt』 util.gocheckpoint(f,check_point)
#這就是上面**中的gocheckpoint函式 f_check = open(check_point,』a』)# 以追加方式寫入 try: while
true: content = f.readline() if content == 『』: # eof break content =
content.strip(『 /n/r』) if content != 『』: # has download url
time.sleep(sleep_time) downloadoper(path,url)
#這裡是偽**..可以認為是urllib.request.retrieve()函式或者是urllib.request.urlopen()啥的 #
作為響應的操作後再將內容寫入檢查點檔案 f_check.write(content+』/n』) f_check.flush() #
必須的,否則會快取,不會寫入硬碟中 except : # 蹦個異常也不怕,以後再次按f5執行即可 raise exception() return
util.failure # 這是我設定的常量,大家認為是0或者1就可以了 finally: f.close() f_check.close()# 關閉檔案
print(『downloading is done……………………』) return util.success
執行完操作之後再寫入到檢查點檔案中。以後程式掛掉,只要檢查點檔案還在,就可以延續前面的工作。不過這裡的檢查點相對於資料庫中事務處理的檢查點還是太簡單了點。
python 拼寫檢查
無意中刷微博看到這篇文章作者用很簡短的語句寫了乙個拼寫檢查的python程式。看完之後發現原來拼寫檢查的原理是這樣的,之前感覺應該是很高深的東西。但是由於對python中lambda表示式的不怎麼理解於是,我就又憑著自己的理解簡單的寫了一遍。沒有原文中作者的優化部分,只是簡單的實現了功能。而且是只有...
Python語法檢查
習慣了c c 等編譯語言,使用像python這種動態語言,總有點不放心,特別是搭建比較大的系統的時候。python靜態語法檢查工具就出現了。使用得比較多的是以下幾個 後來無意中發現,貌似pydev的對python的語法檢查不是它自己做的,也是引用了pylint的,不過pylint配置起來有幾點要注意...
python引數型別檢查 Python中的型別檢查
本文中所有 均執行在python 2.7上 為什麼要進行型別檢查?總所周知,python是一門典型的動態語言,在變數定義 使用的過程中遵循duck typing,當對某一變數進行操作時才去檢查它是否支援該操作。這在大多數情況下沒有什麼問題。但有時我們希望當面對非法型別的引數的時候採取某些預設處理機制...