.
檔案的操作算是所有程式語言中非常基本且常用的功能
通常在檔案寫入時可能會消耗大量時間,導致程式會有短時間卡死的情況
如果是Windows Forms應用程式則會出現 GUI被凍結等問題
因此使用執行緒來解決在檔案存取時造成的延遲
關鍵函式: open(file name, mode)
FILE.write(data.format())
以下為簡單的檔案操作實際演示
此程式主要功能為一啟動時建立一個檔名為 python_test_create_file 的檔案
然後開啟執行緒開始進行資料寫入
接著每秒寫入一筆資料到檔案中,以時間為戳記 數值為連續0~9
寫完檔案後關閉執行緒,結束程式
- #!/usr/bin/python
- import datetime
- import time
- import threading
-
- def file_create(file_name):
- myfile = open(file_name,"w+")
- return myfile
-
- def file_write(file, data):
- #zfill 不足兩位自動補0到兩位
- file.write(str(datetime.date.today().year) +"/" +
- str(datetime.date.today().month).zfill(2) + "/"
- + str(datetime.date.today().day).zfill(2) +" " +
- str(datetime.datetime.today().hour).zfill(2) + ":"
- + str(datetime.datetime.today().minute).zfill(2) + ":"+
- str(datetime.datetime.today().second).zfill(2)+" ")
- #+ str(datetime.datetime.microsecond) + " :")
- file.write("{} \n".format(data))
-
- def run_file_write():
- #寫入資料 每一筆停一秒
- ALL = 10
- count = 1
- for num in range(0,10): #寫入10次 (0-9)
- print("process {} / {}".format(count,ALL)) #顯示當前執行次數
- file_write(FILE, num) #寫檔
- count += 1
- time.sleep(1) #停一秒
-
-
- FILE = file_create
- ("C:\\Users\\mikumiku999\\Desktop\\file_read_write\\python_test_create_file.txt")
- #在指定位置建立檔案
-
- try:
- #開啟執行緒執行寫檔
- run_thread = threading.Thread(target = run_file_write)
- run_thread.start()
- run_thread.join() #等執行序完成後才會執行下面動作
- print("process end");
- except ValueError:
- print ("Error: unable to start thread")