Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在HDF5“只读模式”文件上写入?_Python_Python 3.x_Pandas_Hdf5 - Fatal编程技术网

Python 如何在HDF5“只读模式”文件上写入?

Python 如何在HDF5“只读模式”文件上写入?,python,python-3.x,pandas,hdf5,Python,Python 3.x,Pandas,Hdf5,我使用内置的HDF5方法存储数据 不知怎的,这些HDF5文件变成了“只读”文件,当我以写模式打开这些文件而无法写入它们时,我会收到很多以只读模式打开xxx的消息,这是我真正需要做的事情 到目前为止,我真的不明白的是,为什么这些文件会变成只读的,因为我没有意识到我编写的一段代码可能会导致这种行为。我曾尝试检查HDF5中存储的数据是否损坏,但我能够读取和操作它,因此它似乎工作正常 我有两个问题: 如何将数据附加到那些“只读模式”HDF5文件?我可以将它们转换回写模式或任何其他聪明的解决方案吗? 是否

我使用内置的HDF5方法存储数据

不知怎的,这些HDF5文件变成了“只读”文件,当我以写模式打开这些文件而无法写入它们时,我会收到很多以只读模式打开xxx的消息,这是我真正需要做的事情

到目前为止,我真的不明白的是,为什么这些文件会变成只读的,因为我没有意识到我编写的一段代码可能会导致这种行为。我曾尝试检查HDF5中存储的数据是否损坏,但我能够读取和操作它,因此它似乎工作正常

我有两个问题:

如何将数据附加到那些“只读模式”HDF5文件?我可以将它们转换回写模式或任何其他聪明的解决方案吗? 是否有任何方法可以在默认情况下将HDF5文件更改为“只读模式”,以避免首先将这些文件转换为只读? 代码:

引发此问题的代码是,我用来保存生成的输出:

    with pd.HDFStore('data/observer/' + self._currency + '_' + str(ts)) as hdf:

        hdf.append(key='observers', value=df, format='table', data_columns=True)
我还使用这段代码来操作之前生成的输出:

    for the_file in list_dir:
        if currency in the_file:
            temp_df = pd.read_hdf(folder + the_file)
            ...
我还使用一些select命令从数据文件中获取特定列:

    with pd.HDFStore('data/observer/' + self.currency + '_' + timestamp) as hdf:
        df = hdf.select(key='observers', columns=[x, y])
错误回溯:


目前的问题是我把操作系统文件权限搞砸了。我试图读取的文件属于根目录,因为我使用根目录运行生成这些文件的代码,并且我试图使用用户帐户访问它们

我正在运行debian,以下命令作为root解决了我的问题:

chown -R user.user folder

此命令递归地将该文件夹中所有文件的权限更改为user.user。

我确实使用HDF5,但使用h5py/numpy。你有一些小的代码示例吗?原则上,我认为HDF5格式不支持使文件只读,但您可以选择以只读模式打开。例如,请参阅。但实际上,我们可以从您的代码中学到更多。可能的答案将取决于您处理HDF5文件的方式。请将您的代码添加到问题中,您是否也可以添加错误回溯?@MaxU我已经查看了我的代码,并发布了我对HDF5文件所做的不同类型的操作。它实际上是相当多的代码,因此可能缺少一些东西。如果我发现新的东西,我会更新你。谢谢您的支持:@MaxU,我把文件权限搞砸了,所以出现了这个问题。抱歉给你添麻烦了。
chown -R user.user folder