Так как *.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)
Комментариев нет:
Отправить комментарий