如何在python中频繁执行文件读/写操作(多线程)?

时间:2010-11-24 04:49:36

标签: python file-io

这是我的问题:我需要经常通过不同的线程对一个文件执行读/写操作,我倾向于使用threading.RLock()。acquire()和threading.RLock()。release()来锁定资源(例如,一个txt文件)。问题是,您可以轻松地在某个线程中执行文件写入操作,如何在线程中获取返回值?这是我的示例代码:

FileLock = threading.RLock()

def FileReadingWriting(self, Input, Mode)

    #### Input: things to write
    #### Mode:    1    -    write to the file
    ####          2    -    read from the file

    FileLock.acquire()

    if Mode == 1:
        TheFile = open("example.txt", "w")
        TheFile.write(Input)
        TheFile.close()
    elif Mode == 2:
        TheFile = open("example.txt", "r")
        Content = TheFile.read()
        TheFile.close()

        return Content #### Obviously this won't work, but if I want to get the content in a thread, how should I code?

    FileLock.release()

1 个答案:

答案 0 :(得分:0)

您应该使用一些可访问工作线程和主线程的变量。

例如,工作线程可以将对某个对象的引用作为输入,并在完成后填充它。主线程将等待工作线程完成,然后将检查对象。