17 votes

Comment convertir un paquet epub en epub normal ?

J'ai quelques fichiers epub dans mon iCloud Drive qui sont essentiellement des paquets. Je peux afficher le contenu du paquet, puis il me montre une hiérarchie de fichiers et de dossiers.

Comment puis-je convertir cette structure en un epub standard que tout lecteur d'epub normal comprendra ?

0 votes

(ceci peut être une réponse) Avez-vous essayé d'insérer directement le fichier ePub de votre lecteur iCloud dans votre lecteur ePub ?

0 votes

Oui, j'ai essayé @Brick, mais ils apparaissent comme des dossiers comme indiqué ci-dessus...

0 votes

En d'autres termes, s'affiche-t-il comme prévu dans le lecteur ?

1voto

Jon M Points 111

J'ai pris certains des commentaires ici et j'ai fourni un Bloc-notes Jupyter qui fait cela pour une sauvegarde de disons un répertoire de Livres :

import pathlib
import glob
import os
import zipfile

# Extract the relevant components of a full path
def pathComponents(fullpath):
    path = pathlib.Path(fullpath)
    name = path.name
    stem = path.stem
    suffix = path.suffix
    parent = path.parent
    return name, stem, suffix, parent

# Get directories in your path that have a .epub suffix
def getePubDirs(path):
    epubSearch = os.path.join(path, "*" + "." + "epub")
    eDirs=[]
    for p in glob.glob(epubSearch):
        if (os.path.isdir(p)):    # Only if it's an epub directory
            eDirs.append(p)
    return eDirs

def createZipFile(fname, files):
    zFile = zipfile.ZipFile(fname, mode='w', compression=zipfile.ZIP_DEFLATED)
    for f in files:
        zFile.write(f)
    zFile.close()

def convertDirToePub(dirname):
    name, stem, suffix, parent = pathComponents(dirname)        # get dirname details
    newdirname = zFile = str(parent) + "/" + name + ".ori"
    zFile = str(parent) + "/" + stem + ".epub"
    os.rename(dirname,newdirname)     # rename the epub dir so the epub can take its old name
    # get all the files within the epub directory
    os.chdir(newdirname) # We need to be in directory so the resultant epub paths are correct
    everything = [os.path.join(r,file) for r,d,f in os.walk(".") for file in f]
    createZipFile(zFile, everything)  # Create a zip file containing all those files
    os.chdir(parent)

dirtoconvert='/Users/<username>/tmp/Booksdir'

eDirs = getePubDirs(dirtoconvert)
totalDirs=len(eDirs)
print(totalDirs, "docs to convert")
ctr=1
for i in eDirs:
    print(ctr, "of", totalDirs, ": Converting ", i)
    convertDirToePub(i)
    ctr = ctr + 1
print("Done!")

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X