簡體   English   中英

並發讀取python中的文件

[英]Concurrent reads on a file in python

我有一個文件,上面已經寫了一些數據。 說8個字節的數據現在使用我的python腳本,我想在第一個線程仍在運行或掛起時使用一個線程讀取前四個字節,然后使用另一個線程讀取下四個字節。 我如何使用python做到這一點? 即1)使用線程1從文件1讀取前4個字節2)線程1運行或掛起時,使用線程2從文件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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM