Подскажите, как можно получить авторов книг fb2? Голову сломал, вроде и получаю списки, но натыкаюсь на проблему, когда автор не один, а тег middle-name (отчество) указан не для всех, тогда список неверного размера и теряется порядок
У меня выходит примерно так:
import xml.etree.ElementTree as ET from xml.etree.ElementTree import Element import os PATH = 'j:\\My_book' class FB2Parser: def __init__(self, folder): self.folder = folder self.filelist = self.ret_filelist_in_folder() def get_title_publisher_info(self, nodes): info = [] for file in self.filelist: file = PATH + '\\'+ file self.root = ET.parse(file) self.cleanup() info.append(self.root.find(nodes)) return info def get_text_node(self, nodes, node): info = self.get_title_publisher_info(nodes) job = [] for element in info: results = [] results.append(element.findall(node)) if len(results[0]) == 1: job.append(results[0][0].text) elif len(results[0]) > 1: result = [] for res in results[0]: result.append (res.text) job.append(result) else: job.append('') return job def cleanup(self): for element in self.root.iter(): element.tag = element.tag.partition('}')[-1] def ret_filelist_in_folder(self): filelist = [] for file in os.listdir(self.folder): filelist.append(file) return filelist def run(): converter = FB2Parser(PATH) converter.get_text_node('./description/title-info', 'author') if __name__ == '__main__': run()