Ubuntu
文件夾中所有 .epub 文件的電子書轉換
此程式碼將 epub 文件轉換為 txt 文件:
ebook-convert "book.epub" "book.txt"
如何使用它來轉換目錄中的所有 .epub 文件?
我正在使用 Ubuntu。
程式碼
from os import listdir, rename from os.path import isfile, join import subprocess # return name of file to be kept after conversion. # we are just changing the extension. azw3 here. def get_final_filename(f): f = f.split(".") filename = ".".join(f[0:-1]) processed_file_name = filename+".azw3" return processed_file_name # return file extension. pdf or epub or mobi def get_file_extension(f): return f.split(".")[-1] # list of extensions that needs to be ignored. ignored_extensions = ["pdf"] # here all the downloaded files are kept mypath = "/home/user/Downloads/ebooks/" # path where converted files are stored mypath_converted = "/home/user/Downloads/ebooks/kindle/" # path where processed files will be moved to, clearing the downloaded folder mypath_processed = "/home/user/Downloads/ebooks/processed/" raw_files = [f for f in listdir(mypath) if isfile(join(mypath, f))] converted_files = [f for f in listdir(mypath_converted) if isfile(join(mypath_converted, f))] for f in raw_files: final_file_name = get_final_filename(f) extension = get_file_extension(f) if final_file_name not in converted_files and extension not in ignored_extensions: print("Converting : "+f) try: subprocess.call(["ebook-convert",mypath+f,mypath_converted+final_file_name]) s = rename(mypath+f, mypath_processed+f) print(s) except Exception as e: print(e) else: print("Already exists : "+final_file_name)
對於單個目錄中的文件(不遞歸到子目錄),您只需要一個簡單的 shell 循環,例如
for f in ./*.epub; do ebook-convert "$f" "${f%.epub}.txt" done
shell 參數擴展
${f%.epub}
刪除了尾隨.epub
,以便您可以添加.txt
文件副檔名。