2017-04-12 9 views
0

新しい言語を学習しながら未知語を管理する簡単なGUIアプリケーションを作成しています。とにかく、ファイルパスを正しく宣言する方法がわからないので、特定のパスからXMLファイルをロードする際に問題があります。プログラムはまずファイルパスを宣言し、ディレクトリが存在するかどうかを確認し、必要に応じて作成し、ファイル(XMLドキュメント)が存在するかどうかを確認し、必要に応じて作成し、開始要素と終了要素を書き出し、指定されたパスC#とWindowsので特定のパスからXMLファイルをロードする

、私はこのようにそれを行うだろう:

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のミントのXfceを使用しています。ここで

は、私がこれまで持っているものです:Pythonで

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

ElementTreeの-モジュールを使用します。

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) 
+0

は、非常にありがとうございます。 –

+0

投稿を編集しましたが、克服する必要がある別の問題があります。前もって感謝します。 –

+0

@ wraith1337もう一度質問してください。この質問に続けてはいけません。 –

関連する問題