使用 Python 进行稳定可靠的文件操作
生活随笔
收集整理的這篇文章主要介紹了
使用 Python 进行稳定可靠的文件操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#coding:utf--8
#author:SU
#date:2014-5-22 10:36:47
# 問題的提出:對文件中數據進行操作,然后將結果保存到文件中
# 1、with open(filename) as f:
#2、input = f.read()
#3、output = do_something(input)
#4、with open(filename, 'w') as f:
#5、f.write(output)
#失效模式的例子:
#1、失控的服務器進程溢出大量日志,磁盤被填滿。write()在截斷文件之后拋出異常,文件將會變成空的。
#2、應用的幾個實例并行執行。在各個實例結束之后,因為混合了多個實例的輸出,文件內容最終變成了天書。
#3、在完成了寫操作之后,應用會觸發一些后續操作。幾秒鐘后斷電。在我們重啟了服務器之后,我們再一次看到了舊的文件內容。已經傳遞給其它應用的數據與我們在文件中看到的不再一致。
'''
1、原子性(Atomicity)要求這個事務要么完全成功,要么完全失敗。在上面的實例中,磁盤滿了可能導致部分內容寫入文件。另外,如果正當在寫入內容時其它程序又在讀取文件,它們可能獲得是部分完成的版本,甚至會導致寫錯誤
2、一致性(Consistency) 表示操作必須從系統的一個狀態到另一個狀態。一致性可以分為兩部分:內部和外部一致性。內部一致性是指文件的數據結構是一致的。外部一致性是指文件的內容與它相關的數據是相符合的。在這個例子中,因為我們不了解這個應用,所以很難推斷是否符合一致性。但是因為一致性需要原子性,我們至少可以說沒有保證內部一致性
#author:SU
#date:2014-5-22 10:36:47
# 問題的提出:對文件中數據進行操作,然后將結果保存到文件中
# 1、with open(filename) as f:
#2、input = f.read()
#3、output = do_something(input)
#4、with open(filename, 'w') as f:
#5、f.write(output)
#失效模式的例子:
#1、失控的服務器進程溢出大量日志,磁盤被填滿。write()在截斷文件之后拋出異常,文件將會變成空的。
#2、應用的幾個實例并行執行。在各個實例結束之后,因為混合了多個實例的輸出,文件內容最終變成了天書。
#3、在完成了寫操作之后,應用會觸發一些后續操作。幾秒鐘后斷電。在我們重啟了服務器之后,我們再一次看到了舊的文件內容。已經傳遞給其它應用的數據與我們在文件中看到的不再一致。
'''
1、原子性(Atomicity)要求這個事務要么完全成功,要么完全失敗。在上面的實例中,磁盤滿了可能導致部分內容寫入文件。另外,如果正當在寫入內容時其它程序又在讀取文件,它們可能獲得是部分完成的版本,甚至會導致寫錯誤
2、一致性(Consistency) 表示操作必須從系統的一個狀態到另一個狀態。一致性可以分為兩部分:內部和外部一致性。內部一致性是指文件的數據結構是一致的。外部一致性是指文件的內容與它相關的數據是相符合的。在這個例子中,因為我們不了解這個應用,所以很難推斷是否符合一致性。但是因為一致性需要原子性,我們至少可以說沒有保證內部一致性
總結
以上是生活随笔為你收集整理的使用 Python 进行稳定可靠的文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python的MySQL操作
- 下一篇: Python开发工具PyCharm个性化