从HDFStore目录错误中恢复

时间:2013-10-03 21:14:14

标签: python pandas hdfstore

我制作了一个新的HDFStore并在其中加入了一些东西。

In [1]: store = pd.HDFStore('data.h5')

In [2]: store
Out[2]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
Empty

In [3]: store['a'] = Series([1, 2])

In [4]: store
Out[4]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
/a            series       (shape->[2])

In [5]: store.close()

In [6]: exit

我重启IPython并“错误地”,在这种情况下,我尝试从错误的目录中打开我的商店。

In [1]: cd some_directory
/home/dallan/some_directory

In [2]: store = pd.HDFStore('data.h5')

糟糕!实现我的错误,我cd到正确的目录并在坐在正确的目录中时重新分配store变量:

In [3]: cd
/home/dallan

In [4]: store = pd.HDFStore('data.h5')

In [5]: store
Out[5]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
Empty

In [6]: exit

我的问题:这里发生了什么?在我意外地尝试从错误的目录中访问它之后,为什么我无法从正确的目录中打开商店?下面,当我打开文件时没有首先打开错误的目录目录,你可以看到它实际上存在并且一切都很好。

In [1]: store = pd.HDFStore('data.h5')

In [2]: store
Out[2]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
/a            series       (shape->[2])

这是某种上下文问题吗?我不知所措。这种粗心的错误经常发生在我身上,以至于我来到了这个蠢货。谢谢!


更新

我认为这是HDFStore的一个错误。似乎cd工作正常。通过CSV验证此工作正常:

In [1]: Series([1, 2]).to_csv('test.txt')

In [2]: exit

In [1]: cd some_directory/
/home/dallan/some_directory

In [2]: s = pd.read_csv('test.txt')
(...) IOError: File test.txt does not exist

In [3]: cd
/home/dallan

In [4]: s = pd.read_csv('test.txt')

In [5]: s
Out[5]: 
   0  1
0  1  2

根据Jeff的建议,我尝试!cd发现了一个意外的IPython行为:

In [1]: pwd
Out[1]: u'/home/dallan'

In [2]: !cd some_directory/

In [3]: pwd
Out[3]: u'/home/dallan'

In [4]: !cd /home/dallan/some_directory/

In [5]: pwd
Out[5]: u'/home/dallan'

In [6]: cd some_directory/
/home/dallan/some_directory

In [7]: pwd
Out[7]: u'/home/dallan/some_directory'

0 个答案:

没有答案