用twisted在网络上逐行发送大型文本文件

2024-07-07 08:42:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用twisted和python通过网络发送一些大型文本文件,我想使用UDP和多播,什么解决方案是最好的,我需要示例代码,因为我已经感到困惑,当我尝试这样做时,我从python得到错误24,说太多打开的文件,你能帮我解决这个问题吗?你知道吗

以下是我的部分代码:

    if (options.upt != None):
        print "UPGRADE is initiating"
        sourceFile = open(options.upt, "r")
        reactor.listenMulticast(1888, UpgradeReciever("Control Listener"), listenMultiple=True)
        #with open(options.upt) as sourceFile:
        for line in sourceFile:
            upgradeSenderObj = UpgradeSender(line, "224.0.0.8", 1888)
            reactor.listenMulticast(1888, upgradeSenderObj, listenMultiple=True)
        reactor.run()

我也尝试过读取整个文件并放入list,然后通过twisted调用list的每个元素(实际上是我文件的行),但仍然遇到类似的问题,下面是我的更新代码:

    if (options.upt != None):
        print "UPGRADE is initiating"
        sourceFile = open(options.upt, "r")
        reactor.listenMulticast(1888, UpgradeReciever("Control Listener"), listenMultiple=True)

        dataContainer = list(sourceFile)
        print dataContainer
        for i in range(len(dataContainer)):
            upgradeSenderObj = UpgradeSender(dataContainer[i], "224.0.0.8", 1888)
            reactor.listenMulticast(1888, upgradeSenderObj, listenMultiple=True)
        reactor.run()

Tags: 文件代码truetwistedopenlistoptionsreactor