python读取文件路径报错(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掉,以免占用文件描述符。
pathlib2 中文路径出错
编码问题可能导致python读取中文路径时出错,使python读取中文路径失败
解决方法一:路径拆分单独编码
方法二:对全部路径用unicode格式编码
1.choice_5_29_spyder.py 文件路径不能有中文(导致莫名报错,python 3环境下没有报错)
2.get_im_context.py 文件路径中有中文导致只能run,不能debug(python 2环境下只能run不能debug)
python读取不到excel图片原因
文件读取的路径不对。python读取不到excel图片原因是文件读取的路径不对,文件读取分为绝对路径和相对路径,说明要读取的图像没有保存在python所在的环境,此时输入图像的绝对路径就可以解决。
读取python遍历中文目录得到的文件路径报错
这是因为路径里面包含中文的原因:
linux的系统字符编码默认为utf-8,而要搜索的文件路径nameFile是Unicode,需要进行解码成unicode,因此作如下修改:
fout?=?codecs.open(nameFile.encode("utf-8")?,?"w"?,?"utf-8"
当然,另外一种方法就是修改为英文的路径;
关于编码和解码的知识,请参考:
