2015-06-26 62 views
0

我想解析XML或更好我試圖測試如果我可以訪問我的XML文件。不過,我在這裏得到這個錯誤:試圖從我的電腦讀取XML文件

>>>> DomTree = xml.dom.minidom.parse("usc01") 
Traceback (most recent call last): 
File "<pyshell#6>", line 1, in <module> 
DomTree = xml.dom.minidom.parse("usc01") 
File "C:\Python34\lib\xml\dom\minidom.py", line 1960, in parse 
return expatbuilder.parse(file) 
File "C:\Python34\lib\xml\dom\expatbuilder.py", line 910, in parse 
with open(file, 'rb') as fp: 
FileNotFoundError: [Errno 2] No such file or directory: 'usc01' 

這是直接從Python Shell中,我試圖usc01.xml移動到python34文件夾,但還是給了我這個錯誤。

有誰知道如何解決這個問題?

+0

你有沒有嘗試'xml.dom.minidom.parse(「usc01.xml」)' – mehtunguh

+0

是的,我試過usc01.xml之前,但它給了我同樣的錯誤 –

回答

3

嘗試使用絕對路徑名稱或更改爲文件所在的目錄。例如。無論是

>>> DomTree = xml.dom.minidom.parse("c:\\Users\\somebody\\Desktop\\usc01.xml") 

>>> import os 
>>> os.chdir("c:\\Users\\somebody\\Desktop") 
>>> DomTree = xml.dom.minidom.parse("usc01.xml") 

,當然,包括.xml擴展名,如果該文件確實有一個。微軟認爲,普通用戶的大腦無法處理文件名,並在同一時間延長,但文件系統,事情比這更復雜一點... :-)


更新:下面評論中的錯誤與文件內容有關,這些內容可能是無效的unicode。很難說出發生了什麼,不知道文件包含在2-3位置。

如果該文件的內容是不是默認和翻譯一些其他的編碼是必需的,應先適當打開該文件,然後將文件對象傳遞給parse方法,如:

>>> f = open("c:\\Users\\somebody\\Desktop\\usc01.xml", encoding="iso-8859-1") 
>>> DomTree = xml.dom.minidom.parse(f) 
+0

好吧,所以現在我得到了這個錯誤信息>>> DomTree = xml。 dom.minidom.parse(「C:\ Users \ Raffael \ Documents \ Professional Work \ Watson Showcase \ US Code XML Database \ xml \ usc01.xml」) SyntaxError:(unicode error)'unicodeescape'編解碼器無法解碼字節在2- 3:截斷\ UXXXXXXXX轉義 –

+0

我剛試圖用f = open(...)打開文件,我也打開了文件的源代碼,使用的編碼是UTF-8。我想看看2-3位的角色是什麼,所以我可以嘗試修復它。 –

+0

好的,你是否用'encoding =「utf-8」'嘗試了上面的內容? – nickie