❶ 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文件等),没有权限,给一个超级管理员权限就可以了。