rime / ibus-rime

【中州韻】Rime for Linux/IBus
https://rime.im
GNU General Public License v3.0
718 stars 103 forks source link

如何读取LevelDB table data文件? #178

Closed hwypengsir closed 3 months ago

hwypengsir commented 3 months ago

luna_pinyin.userdb文件夹内有000005.ldb文件。

file /home/debian/.config/ibus/rime/luna_pinyin.userdb/000005.ldb
/home/debian/.config/ibus/rime/luna_pinyin.userdb/000005.ldb: LevelDB table data

这个文件可以用xxd and vim 打开,它不是空的。

import plyvel
dbfile = "/home/debian/.config/ibus/rime/luna_pinyin.userdb/000005.ldb"
db = plyvel.DB(dbfile)

报错信息:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "plyvel/_plyvel.pyx", line 247, in plyvel._plyvel.DB.__init__
  File "plyvel/_plyvel.pyx", line 88, in plyvel._plyvel.raise_for_status
plyvel._plyvel.IOError: b'IO error: /home/debian/.config/ibus/rime/luna_pinyin.userdb/000005.ldb/LOCK: Not a directory'

请问:为何无法用pythond的plyvel打开?有无bash的命令可以打开?

fxliang commented 3 months ago

image https://plyvel.readthedocs.io/en/latest/user.html#getting-started

plyvel._plyvel.IOError: b'IO error: /home/debian/.config/ibus/rime/luna_pinyin.userdb/000005.ldb/LOCK: Not a directory'

运行报错信息已经很清晰了

明显你并不熟悉plyvel,看文档可解决

import plyvel
dbfile = "/home/debian/.config/ibus/rime/luna_pinyin.userdb/"
db = plyvel.DB(dbfile)