Python文件基础
Python文件基础
关于文件的几点注意事项
1.文件对象属性
打开一个文件后,得到一个文件对象fp,通过它可以获得与该文件相关的各种信息。以下是与文件对象相关的所有属性。
· fp.closed:如果文件已被关闭,则返回True;否则返回False。
· fp.mode:打开文件的模式。
· fp.name:得到已被打开的文件的文件名。
2.列表中出现字符串“\ufeff”及其解决方案
举例36:\ufeff问题及其解决办法。
上述程序打开一个示例文件,但从结果中发现,在读取的内容中出现了\ufeff,而真正的文件内容是从“你好”开始的。
解决办法如下:
从上述改进后的程序中可以看出,解决\ufeff问题的关键在于通过utf-8-sig编码格式对字符串进行转码:decode(‘utf-8-sig’)。
由此得到启发,如果在打开文件时直接采用utf-8-sig编码格式,那么能不能解决这个乱码问题?答案是令人惊喜的,请看:
真的解决了!这是为什么呢?
实际上,需要从以下两种编码格式的本质加以阐述。
(1)UTF-8编码。它以字节为编码单元,字节顺序在所有系统中都相同,不存在字节序的问题,因此它并不需要字节序标记(Byte Order Mark,BOM)。
(2)utf-8-sig编码。它是一种带BOM的UTF-8编码格式,存在字节序的问题,必须带BOM以标识字节序,而BOM即字符U+FEFF。从Unicode 3.2开始,U+FEFF只能出现在字节流的开头,只能用于标识字节序。由此可知,列表中的字符串“\ufeff”并不是乱码,而是由于编码格式不一致才出现的。
利用Pygal模块对JSON格式的数据进行可视化
[参考文档](Pygal,可导出矢量图的Python可视化利器 - 知乎 (zhihu.com))
安装并导入Pygal
使用pip或者conda进行安装,在命令行输入:
1 | pip install pygal |
雷达图
1 | radar_chart = pygal.Radar() |
效果如下:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 藏心阁!