python 多執行緒寫入檔案

2021-08-19 11:12:13 字數 1988 閱讀 1020

python 多執行緒寫入檔案

在python中,對檔案的操作時很簡潔的,一般是通過開啟檔案,獲取檔案物件,然後對檔案物件進行寫入。

這是file 的一些常用方法:

class file(object):

def close(self): # real signature unknown; restored from __doc__

pass

def fileno(self): # real signature unknown; restored from __doc__

return 0

def flush(self): # real signature unknown; restored from __doc__

pass

def isatty(self): # real signature unknown; restored from __doc__

return false

def next(self): # real signature unknown; restored from __doc__

pass

def read(self, size=none): # real signature unknown; restored from __doc__

pass

def readinto(self): # real signature unknown; restored from __doc__

pass

def readline(self, size=none): # real signature unknown; restored from __doc__

pass

def readlines(self, size=none): # real signature unknown; restored from __doc__

return

def seek(self, offset, whence=none): # real signature unknown; restored from __doc__

pass

def tell(self): # real signature unknown; restored from __doc__

""" tell() -> current file position, an integer (may be a long integer). """

pass

def truncate(self, size=none): # real signature unknown; restored from __doc__

pass

def write(self, p_str): # real signature unknown; restored from __doc__

pass

def writelines(self, sequence_of_strings): # real signature unknown; restored from __doc__

pass

def xreadlines(self): # real signature unknown; restored from __doc__

pass

通常是通過write 直接乙個挨著乙個的寫,如果有一天,突然想要多個執行緒去寫乙個檔案,怎們辦呢??

思路是這樣的:

1.對於檔案的大小要確定

2.並且對於每個執行緒的需要處理的內容大小進行劃分

3.然後在各個執行緒裡面將內容寫入進去

4.需要注意的是對於每個執行緒,要給予乙個檔案物件,通常是在主線程中開啟檔案獲得檔案物件,然後複製這個檔案物件的描述符,並用os.fdopen()獲取這個檔案物件,傳遞給各個執行緒使用!

另外一種方式:

如果對檔案的大小,事先是不知道的,僅僅可以參考裡面有多少行,具體的大小,不知道的時候怎們辦呢。

注意:在進行一些檔案操作的時候,過多的列印一些輸出到控制台會影響程式的效率,一定注意!

SQLite 多執行緒序列寫入

確認在 sqlite3.c 中,巨集 sqlite threadsafe 1 或者 2 define sqlite threadsafe 1 imp r 07272 22309 include thread.h extern c include include utility.h int print...

python多執行緒讀取檔案

coding utf 8 importos,time import threading rlock threading rlock curposition 0 class reader threading thread def init self res self res res super rea...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...