Так как *.fb2 - это на самом деле xml, то решение простое:
1. Получить список файлов в каталоге
2. Загрузить в парсер каждый файл
3. Найти там имя автора и название книги
4. Переименовать файл
#!/usr/bin/python # -*- coding: UTF-8 -*- import os import xml.dom.minidom from xml.dom.minidom import Node path = os.path.expanduser(u"~/Загрузки/fb2/") dirList = (file for file in os.listdir(path) if os.path.isfile(os.path.join(path, file)) and file.endswith("fb2")) for fname in dirList: print fname doc = xml.dom.minidom.parse(path + fname) last_name = "" book_title = "" for title_node in doc.getElementsByTagName("title-info"): for author_node in title_node.getElementsByTagName("author"): for node2 in author_node.getElementsByTagName("last-name"): for node3 in node2.childNodes: if node3.nodeType == Node.TEXT_NODE: last_name = node3.data for book_node in title_node.getElementsByTagName("book-title"): for node2 in book_node.childNodes: if node2.nodeType == Node.TEXT_NODE: book_title = node2.data if last_name != "" and book_title != "": new_fname = u'%s %s.fb2' % (last_name, book_title) os.rename(path + fname, path + new_fname) print "%s = %s" % (fname, new_fname)
Комментариев нет:
Отправить комментарий