我有一个文件,我在其中写入了一些数据。说 8 个字节的数据 现在使用我的 python 脚本,我想在第一个线程仍在运行或挂起时使用一个线程读取前四个字节,然后使用另一个线程读取接下来的 4 个字节。我怎样才能使用python做到这一点?即 1) 使用 thread1 从 file1 读取前 4 个字节 2) 当 thread1 运行或挂起时,使用 thread2 从 file1 读取接下来的 4 个字节
问问题
285 次
2 回答
3
运行两个线程并在两个线程中分别打开和读取文件,可以使用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 回答