从特定路径加载XML文件

时间:2017-04-12 16:37:48

标签: python xml

我正在创建一个简单的GUI应用程序来管理未知单词,同时学习一门新语言。无论如何,我在从特定路径加载XML文件时遇到麻烦,因为我不知道如何正确声明文件路径。程序应首先声明文件路径,检查目录是否存在并在必要时创建它,检查文件(XML文档)是否存在并在必要时创建它,编写start和end元素,最后从中加载XML文档指定的路径。

在C#和Windows中,我会这样做:

string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string vocabulary_path = path + "\\Vocabulary\\Words.xml";

if (!Directory.Exists(path + "\\Vocabulary"))
    Directory.CreateDirectory(path + "\\Vocabulary");

if (!File.Exists(vocabulary_path))
{
    XmlTextWriter xW = new XmlTextWriter(vocabulary_path, Encoding.UTF8);
    xW.WriteStartElement("Words");
    xW.WriteEndElement();
    xW.Close();
}

XmlDocument xDoc = new XmlDocument();
xDoc.Load(vocabulary_path);

...但我正在使用Python和Linux Mint Xfce。

这是我到目前为止所做的:

if not os.path.exists(directory):
    os.makedirs(directory)

my_file = Path("/path/to/file")

if not my_file.is_file():
    # create an XML document and write start and end element into it

1 个答案:

答案 0 :(得分:0)

在Python中使用ElementTree-Module:

import os
import xml.etree.ElementTree as et

vocabulary = os.path.join(path, "Vocabulary", "Words.xml")

if not os.path.exists(vocabulary):
    if not os.path.exists(os.path.dirname(vocabulary)):
        os.mkdirs(os.path.dirname(vocabulary))
    doc = et.Element('Words')
    tree = et.ElementTree(doc)
    tree.write(vocabulary)
else:
    tree = et.ElementTree(file=vocabulary)