Python (и кодирование новичка) здесь. Я пытаюсь создать XML-файл на основе списка файлов в каталоге. Первые две буквы имен файлов соответствуют новому коду страны, и я также пытаюсь извлечь это.Используйте PYCOUNTRY для преобразования ISO 3166-1 alpha-2 в название страны
Мой предназначен формат выглядит следующим образом:
<ROOT>
<BASIC/>
<FULL>
<INFO>
<server>filname</server>
<country>country</country>
<region/>
</INFO>
</FULL>
</ROOT>
я, кажется, чтобы быть в состоянии создать файл XML, но я не в состоянии преобразовать код две цифры страны в страну, используя pycountry. Может ли кто-нибудь предложить возможное решение? Любые комментарии к остальной части кода также будут полезны.
# -*- coding: utf-8 -*-
import lxml.etree as xml
import pycountry
import glob
import gettext
gettext.bindtextdomain('iso3166', pycountry.LOCALES_DIR)
_c = lambda t: gettext.dgettext('iso3166', t)
def createXML(outfile):
root = xml.Element("ROOT")
basic = xml.Element("BASIC")
full = xml.Element("FULL")
root.append(basic)
root.append(full)
# add file information
for filename in glob.glob("*.*"):
info = xml.Element("INFO")
server = xml.SubElement(info, "server")
server.text = filename
short = filename[:2]
country = xml.SubElement(info, "country")
def get_country(code):
return _c(pycountry.countries.get(alpha2=code).name)
country.text = get_country(short)
region = xml.SubElement(info, "region")
full.append(info)
print xml.tostring(root, pretty_print=True)
#save new XML
# tree = xml.ElementTree(root)
# with open(filename, "w") as fh:
# tree.write(fh)
#--------------------------------------------------------
if __name__ == "__main__":
createXML("info.xml")
1 - Не указывайте 'get_country' внутри цикла for. 2 - Создаются ли файлы с верхними или строчными буквами? – gbe
1 - Хорошо, я определяю его снаружи. У меня проблема, когда я пытаюсь определить текст в результате функции, и это не позволит мне. Какие-либо предложения? 2 - нижний регистр, но я хотел бы быть максимально полным. Спасибо за помощь! – RMcLellan
Что касается 1, я не понимаю, о чем вы говорите, почему вы говорите «это не позволит вам», и что вы имеете в виду, почему вы ссылаетесь на «текст». – gbe