0

データを書き込んだファイルがあります。8 バイトのデータを言う今、私の python スクリプトを使用して、最初のスレッドがまだ実行中または中断されている間に、1 つのスレッドを使用して最初の 4 バイトを読み取り、別のスレッドを使用して次の 4 バイトを読み取りたいとします。Pythonを使用してこれを行うにはどうすればよいですか? つまり、1) スレッド 1 を使用してファイル 1 から最初の 4 バイトを読み取る 2) スレッド 1 が実行中または一時停止している間に、スレッド 2 を使用してファイル 1 から次の 4 バイトを読み取る

4

2 に答える 2

3

2 つのスレッドを実行し、両方のスレッドで別々にファイルを開いて読み取ると、seek特定の位置にジャンプするために使用できます

于 2012-10-24T16:17:06.873 に答える
0
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()
于 2012-10-25T01:10:37.343 に答える