#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# конвертация папки с файлами в структуру fb2
#--------------------------------------------------
List = []
#---
def SaveList(fn, L):
, ,f = open(fn, 'w', encoding="utf-8")
, ,for i in L:
, , , ,f.write(i)
, ,f.close()
#**************************************************
def my_str(s):
, ,s=s.replace('\t',' , ,')
, ,s=s.replace(' ',' , ,')
, ,s=s.replace('**','>')# вставьте вместо ** символ "больше"
, ,s=s.replace('**','<')# вставьте вместо ** символ "меньше"
# s = s.rstrip
, ,s = '<p>' + s + '</p>\n'
, ,return s
, ,
def parse_file(ph):
, ,global List
, ,si = os.path.getsize(ph)
, ,if si > 0:
, , , ,List.append('<section type="f">\n') , , , ,
, , , ,List.append('<title><p>' + os.path.basename(ph)+ '</p></title>\n')
, , , ,f =open(ph, encoding="utf-8")
, , , ,Li=f.readlines()
, , , ,for i in Li:
, , , , , ,s = my_str(i)
, , , , , ,List.append(s)
, , , ,f.close()
, , , ,List.append('</section>\n')
, ,
def parse_dir(ph):
, ,global List
, ,dirlist = os.listdir(ph)
, ,if len(dirlist) > 0:
, , , ,List.append('<section type="d">\n') , , , ,
, , , ,List.append('<title><p>' + os.path.basename(ph)+ '</p></title>\n')
, , , ,
# , , dirlist.sort()
, , , ,for i in dirlist:
, , , , , ,m = os.path.join(ph, i)
, , , , , ,if os.path.isdir(m):
, , , , , , , ,parse_dir(m)
, , , , , ,else:
, , , , , , , ,parse_file(m)
, , , ,List.append('</section>\n')
def GetHead(myFile):
, ,global List
, ,f =open(myFile, encoding="utf-8")
, ,Li=f.readlines()
, ,for i in Li:
, , , ,List.append(i)
, ,f.close()
#----------------------------------------
path = os.getcwd()
folder = 'Arc'
if not os.path.isdir(folder):
, ,sys.exit(folder + ' - does not exist')
myFolder = os.path.join(path, folder)
myFile = os.path.join(myFolder, 'head.txt')
if os.path.isfile(myFile):
, ,GetHead(myFile)
List.append('\n<section type="d">\n')
List.append('<title><p>'+folder)
List.append('</p></title>\n')
myFile = os.path.join(myFolder, 'list.txt')
if os.path.isfile(myFile):
, ,f =open(myFile, encoding="utf-8")
, ,Li=f.readlines()
, ,for i in Li:
, , , ,i = i.strip()
, , , ,if i == '':
, , , , , ,continue
, , , ,m = os.path.join(myFolder, i)
, , , ,if os.path.isdir(m):
, , , , , ,parse_dir(m)
, , , ,else:
, , , , , ,if os.path.isfile(m):
, , , , , , , ,parse_file(m) , , , ,
, ,f.close()
List.append('</section>\n')
List.append('</body>')
List.append('</FictionBook>')
SaveList('fb.fb2', List)
print( 'Done!')