日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【解决方案】调用multiprocessing中创建的文件无法打开的问题FileNotFoundError: [WinError 2]

發(fā)布時間:2025/4/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【解决方案】调用multiprocessing中创建的文件无法打开的问题FileNotFoundError: [WinError 2] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題

在python多進程任務(wù)中,常常會使用共有的變量,交給Manager管理。

但是這樣寫入的到的文件,有時候會由于我們操作的遺漏。導(dǎo)致沒辦法在其他文件中打開對應(yīng)的壓縮文件。

比如報下面這樣的錯誤:

FileNotFoundError Traceback (most recent call last) <ipython-input-48-d03f6b842aa5> in <module>3 for filename in filenamelist:4 with open(os.path.join('./pickle', filename), 'rb') as f: ----> 5 word_list = pickle.load(f)c:\users\lijy2\appdata\local\programs\python\python36\lib\multiprocessing\managers.py in RebuildProxy(func, token, serializer, kwds)879 not getattr(process.current_process(), '_inheriting', False)880 ) --> 881 return func(token, serializer, incref=incref, **kwds)882 883 #c:\users\lijy2\appdata\local\programs\python\python36\lib\multiprocessing\managers.py in __init__(self, token, serializer, manager, authkey, exposed, incref, manager_owned)729 730 if incref: --> 731 self._incref()732 733 util.register_after_fork(self, BaseProxy._after_fork)c:\users\lijy2\appdata\local\programs\python\python36\lib\multiprocessing\managers.py in _incref(self)783 return784 --> 785 conn = self._Client(self._token.address, authkey=self._authkey)786 dispatch(conn, None, 'incref', (self._id,))787 util.debug('INCREF %r', self._token.id)c:\users\lijy2\appdata\local\programs\python\python36\lib\multiprocessing\connection.py in Client(address, family, authkey)483 _validate_family(family)484 if family == 'AF_PIPE': --> 485 c = PipeClient(address)486 else:487 c = SocketClient(address)c:\users\lijy2\appdata\local\programs\python\python36\lib\multiprocessing\connection.py in PipeClient(address)684 while 1:685 try: --> 686 _winapi.WaitNamedPipe(address, 1000)687 h = _winapi.CreateFile(688 address, _winapi.GENERIC_READ | _winapi.GENERIC_WRITE,FileNotFoundError: [WinError 2]

解決辦法

實際上,是我們在pickle打包前。
保存的文件是Manager的對應(yīng)元素
需要進行的操作很簡單,就是將其轉(zhuǎn)成對應(yīng)的Python元素之后,再打包就好了。

比如:

原來操作
multiprocessing.Manager().list()list(…)
multiprocessing.Manager().dict()dict(…)

強制類型轉(zhuǎn)換即可。

總結(jié)

以上是生活随笔為你收集整理的【解决方案】调用multiprocessing中创建的文件无法打开的问题FileNotFoundError: [WinError 2]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。