0
我有一個文件,我寫了一些數據。說8個字節的數據 現在使用我的python腳本,我想在第一個線程仍在運行或暫停時使用一個線程讀取前四個字節,並使用另一個線程讀取後續4個字節。 我該如何使用python來做到這一點?即 1)使用線程1從文件1 2),而線程1運行閱讀前4個字節或懸浮,使用線程2並行讀取python中的文件
我有一個文件,我寫了一些數據。說8個字節的數據 現在使用我的python腳本,我想在第一個線程仍在運行或暫停時使用一個線程讀取前四個字節,並使用另一個線程讀取後續4個字節。 我該如何使用python來做到這一點?即 1)使用線程1從文件1 2),而線程1運行閱讀前4個字節或懸浮,使用線程2並行讀取python中的文件
運行的兩個線程讀從文件1接下來的4個字節,開放及兩個線程分別讀取文件,則可以使用seek
跳轉到特定位置
from multiprocessing import Process, Queue
class MyFileWrapper:
def __init__(self, filePath, start, stop):
self.filePath = filePath
self.start = start
self.stop = stop
def getData(self):
with open(self.filePath, 'r') as f:
f.seek(self.start)
data = f.read(self.stop - self.start)
print data
def worker(q):
myFileWrapper = q.get()
myFileWrapper.getData()
if __name__ == "__main__":
work_queue = Queue()
p1 = Process(target=worker, args=(work_queue,))
p1.start()
p2 = Process(target=worker, args=(work_queue,))
p2.start()
work_queue.put(MyFileWrapper('C:\Users\Asus\Desktop\pytest.txt', 0, 4))
work_queue.put(MyFileWrapper('C:\Users\Asus\Desktop\pytest.txt', 4, 8))
work_queue.close()
work_queue.join_thread()
p1.join()
p2.join()
這聽起來像個壞主意。從文件中只讀取一個線程並將數據交給工作人員處理會不會更容易? – millimoose