Kindle在删除一本电子书后,该电子书的阅读进度这些记录并不会被删除,随着删除的电子书越来越多,便会产生这些垃圾文件。以下是用Python脚本来删除这些文件的方法:

    import sys, os, shutil

    argc = len(sys.argv)
    if argc < 2:
        print(sys.argv[0]+" <path>")
        sys.exit(1)

    docdir = os.path.join(sys.argv[1], "documents")
    files = os.listdir(docdir)
    info = {}

    for entry in files:
        base = os.path.splitext(entry)[0]
        val = info.setdefault(base, 0)
        info[base] = val + 1

    for (k, v) in info.items():
        if v == 1:
            file = k+".sdr"
            path = os.path.join(docdir, file)
            if os.path.exists(path):
                shutil.rmtree(path)
                print("removed %s" % path)

给非专业人士的帮助:

    1. 将上面的代码复制后,粘贴到记事本一类的文本编辑器里,保存成kindle.py
    2. 如果电脑上没有安装过Python,需要先安装一下。(Macbook和Linux一般系统都已经自带了)
    3. 打开命令行工具,切换到kindle.py文件所在的目录下,执行命令 python kindle.py <Kindle所在的磁盘路径>
    例如在Windows下,Kindle接入电脑后是在E盘,就执行 python kindle.py E:\  
   在Macbook下,假设Kindle接入后是在/Volumes/Kindle,就执行 python kindle.py /Volumes/Kindle
    4. 上面代码仅在Macbook下测试过。

Enjoy it!