gpt4 book ai didi

python - 同时使用 pandas 和 PyTables (3.1.1),重新打开一个已经打开的文件

转载 作者:太空狗 更新时间:2023-10-30 03:01:58 28 4
gpt4 key购买 nike

我同时使用 pandas 和 pytables (3.1.1)。问题是我已经用 pytables 打开了一个 HDF5 文件,当我尝试用 pandas 创建一个新的 HDF5Store 时

hdf5store = HDFStore(...)

我收到以下错误:

  File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 281, in __init__
self.open(mode=mode, warn=False)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 387, in open
self._handle = h5_open(self._path, self._mode)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 154, in h5_open
return tables.openFile(path, mode)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/tables/_past.py", line 35, in oldfunc
return obj(*args, **kwargs)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/tables/file.py", line 296, in open_file
_FILE_OPEN_POLICY))
ValueError: The file '/tmp/temp_folder_for_pypet_tests/experiments/tests/HDF5/merge1.hdf5' is already opened. Please close it before reopening. HDF5 v.1.8.4-patch1, FILE_OPEN_POLICY = 'strict'

我怎样才能告诉 pandas 不要重新打开文件,而只是使用已经给定的文件句柄?

非常感谢!

最佳答案

您需要显式传递 mode='r' 以强制以只读模式打开。默认是以 mode='a'(追加模式)打开。

最新版本的 PyTables 变得更加严格,只允许一个文件以写入模式打开一次,即使跨多个进程/线程也是如此。这是为了避免文件可能损坏。

如果你有最新的 HDF5 库版本,你可以在只读模式下多次打开文件(否则你会得到一个不同的异常)。

关于python - 同时使用 pandas 和 PyTables (3.1.1),重新打开一个已经打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780134/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com