創作內容

9 GP

Python 使用執行緒進行檔案寫入

作者:貓貓風 ฅ●ω●ฅ│2019-10-11 15:33:59│贊助:18│人氣:262
.















檔案的操作算是所有程式語言中非常基本且常用的功能

通常在檔案寫入時可能會消耗大量時間,導致程式會有短時間卡死的情況

如果是Windows Forms應用程式則會出現 GUI被凍結等問題

因此使用執行緒來解決在檔案存取時造成的延遲

何謂執行緒  可以參考此篇 ->  執行緒的使用

關鍵函式: open(file name, mode)
                  FILE.write(data.format())


以下為簡單的檔案操作實際演示

此程式主要功能為一啟動時建立一個檔名為 python_test_create_file 的檔案

然後開啟執行緒開始進行資料寫入

接著每秒寫入一筆資料到檔案中,以時間為戳記  數值為連續0~9

寫完檔案後關閉執行緒,結束程式

  1. #!/usr/bin/python  
  2. import datetime  
  3. import time  
  4. import threading  
  5.   
  6. def file_create(file_name):  
  7.     myfile = open(file_name,"w+")  
  8.     return myfile  
  9.   
  10. def file_write(file, data):  
  11.     #zfill 不足兩位自動補0到兩位  
  12.     file.write(str(datetime.date.today().year) +"/" +
  13.     str(datetime.date.today().month).zfill(2) + "/"  
  14.     + str(datetime.date.today().day).zfill(2) +" " +
  15.     str(datetime.datetime.today().hour).zfill(2) + ":"  
  16.     + str(datetime.datetime.today().minute).zfill(2) + ":"+
  17.     str(datetime.datetime.today().second).zfill(2)+" ")  
  18.     #+ str(datetime.datetime.microsecond) + " :")  
  19.     file.write("{} \n".format(data))  
  20.   
  21. def run_file_write():   
  22.     #寫入資料  每一筆停一秒  
  23.     ALL = 10  
  24.     count = 1     
  25.     for num in range(0,10): #寫入10次 (0-9)  
  26.      print("process {} / {}".format(count,ALL)) #顯示當前執行次數  
  27.      file_write(FILE, num) #寫檔  
  28.      count += 1  
  29.      time.sleep(1)  #停一秒  
  30.   
  31.   
  32. FILE = file_create
  33. ("C:\\Users\\mikumiku999\\Desktop\\file_read_write\\python_test_create_file.txt")
  34. #在指定位置建立檔案  
  35.   
  36. try:  
  37.     #開啟執行緒執行寫檔  
  38.      run_thread = threading.Thread(target = run_file_write)  
  39.      run_thread.start()  
  40.      run_thread.join() #等執行序完成後才會執行下面動作  
  41.      print("process end");  
  42. except ValueError:  
  43.      print ("Error: unable to start thread")  


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4556683
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:涼涼風|python

留言共 1 篇留言

雷穆斯
謝謝您來小屋OWO
很久沒回巴哈了 有時間會開始回顧看朋友的創作OWO!

10-15 23:36

貓貓風 ฅ●ω●ฅ
好的 不客氣唷 OWO10-15 23:45
我要留言提醒:您尚未登入,請先登入再留言

9喜歡★s1234567 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:貓咪大戰爭 絕 天罰... 後一篇:Arduino DFPl...

追蹤私訊切換新版閱覽

作品資料夾

Kyc763929???
??????????????????????????????????????????????看更多我要大聲說昨天11:19


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】