我正在创建一个简单的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
答案 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)