一、實驗環境
1.Windows10x64
2.anaconda4.6.9 + python3.7.1(anaconda集成,不需單獨安裝)
3.pyinstaller3.5
二、任務需求
三、問題描述
1.文件1中內容,添加至總文件后,被后續的文件2覆蓋!
2.文件1添加至總文件后,添加一行打印語句(打印語句執行需要時間),未被后續文件2覆蓋!
四、問題分析
懷疑python寫入文件,Windows操作系統未及時刷新,未執行真正的寫動作,存在短暫延時,需要使用文件刷新函數。
五、文件刷新
1.為什么要刷新文件呢
答:首先我們就要知道電腦是怎么儲存信息的,寫的代碼保存在緩存中當緩存滿了之后就會將內容儲存到硬盤中。
2.為什么要刷新文件
答:系統會自動儲存信息,但是儲存信息不及時,將導致快速操作同一文件失敗或者意外斷電后數據丟失。
六、文件刷新代碼例子
def save_file(context=None,file_path=None): """ :param context: write content :param file_path: write file path :return: """ try: df = open(file_path,'wb') if context: bin2str = binascii.a2b_hex(context) else: bin2str = binascii.a2b_hex(self._intercept_contents_filter) debug_print(bin2str) df.write(bin2str) df.flush() #強制刷新 finally: if df: df.close()