❶ python程序出錯!求解!
錯誤分為語法錯誤和邏輯錯誤
1、語法錯誤
程序執行過程中,python解釋器會檢測你的程序是否存在語法錯誤,如果程序出錯python解釋器會指出出錯的一行,並且在最先找到的,錯誤的文職標記了一個小小的箭頭。
2、邏輯錯誤
在生活中0是不能作為被除數的,程序寫的語法可能沒問題,但是邏輯上不一定沒有問題,這就是一種邏輯錯誤。
異常處理方法:
Python內置的try...except...finally用來處理錯誤十分方便,出錯時,會分析錯誤信息並定位錯誤發生的代碼位置才是最關鍵的。
程序也可以主動拋出錯誤,讓調用者來處理相應的錯誤,但是,應該在文檔中寫清楚可能會拋出哪些錯誤,以及錯誤產生的原因。
實例:下面是簡單的例子,它打開一個文件,在該文件中的內容寫入內容,但文件沒有寫入許可權,發生了異常:
#!/usr/bin/python#-*-coding:UTF-8-*-try:
fh=open("testfile","w")
fh.write("這是一個測試文件,用於測試異常!!")exceptIOError:
print"Error:沒有找到文件或讀取文件失敗"else:
print"內容寫入文件成功"
fh.close()
在執行代碼前為了測試方便,我們可以先去掉testfile文件的寫許可權,命令如下:
chmod-wtestfile
再執行以上代碼:
$pythontest.py
Error:沒有找到文件或讀取文件失敗
❷ python3讀文件編碼錯誤怎麼辦
在python3中系統默認編碼是unicode,讀取文件經常會編碼錯誤導致報錯。
首先先確認要讀取文件的編碼,可這樣操作:
記事本打開文本文件,點擊「文件」-「另存為」查看編碼:
importcodecs
f=codecs.open(r"test.txt","r","gbk")
print(f.read())
f.close()
(示例的文件是ANSI所以使用GBK讀取)
以上就可以正確讀取想要的文件了
❸ 關於python里json文件的讀取報錯
你函數寫錯了,要寫json.loads()
json數據和python數據有區別,唯一的辦法就是json轉python數據
❹ python讀取xml文件報錯ValueError: multi-byte encodings are not supported
問題 在使用python對xml文件進行讀取時,提示ValueError: multi-byte encodings are not supported
xml是用gb2312編碼的。
很多貼子上說把xml的編碼格式改為utf-8,就可以正常執行了。
但是這里有一個問題,xml原先的編碼格式和encoding欄位顯示的編碼格式都是gb2312,如果只改了encoding欄位,之後再使用這個xml文件,就會按utf-8解析gb2312,會造成不可預知的後果。
第二個問題就是指改一個xml文件還好,但是有幾百上千的時候,改這個就不方便了。
解決方案 用parseString函數
python提供了兩種xml的輸入方式,一種是文件,一種是字元串。我們可以先將xml文件讀入內存,然後關閉文件。再將xml字元串中的gb2312用replace改為utf-8,然後用parseString解析,這樣就不會報錯。
注意事項 如果文件過大,有可能內存不夠,所以適用於小的xml文件。注意要把不使用的文件給close掉,以免佔用文件描述符。
❺ 用python打開文件總是出現IOError怎麼回事
用python打開文件總是出現IOError的原因:
1.python ioerror的出現:打開一個不存在的文件,示例中有意輸入了一個不存在的文件名,並試圖打開它。程序找不到這個文件名所以引發了IOError
」Traceback (most recent call last): File "<stdin>", line 1, in <mole>IOError: [Errno 2] No such file or directory: 'a.txt'「
2.文件寫入時遇到python error錯誤原因。有同學遇到了IOError Errno 0 錯誤的情況,在用a+方式打開文件,之後讀取該文件內容。修改讀取的內容後重新寫入文件,在寫入時程序也遇到了IOError錯誤。這時要注意在讀取文件之後記得要把文件關閉,當你需要寫入文件時,要再將文件以w+方式打開寫入。加深學習Python open()函數文件打開、讀、寫基礎操作,可以減少類似情況發生。
3.當你不能滿足被訪問文件所設置的許可權時,也會引發IO Error錯誤,類似這樣
」IOError: [Errno 13] Permission denied: 'c:/a.txt' python permission denied「
從字面意思來理解就可以知道原因了,是因為我們執行的命令(運行python文件等),沒有許可權,給一個超級管理員許可權就可以了。