GBK编码报错
解决方法
加上encoding='utf-8'
报错信息
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 8: illegal multibyte sequence
分析
这个错误是因为读取的 CSV 文件不是 GBK 编码的(可能是 UTF-8 或其他编码),但 Python 默认使用 GBK 解码。解决方法是指定正确的文件编码方式。
修改
import csv
import sys
import re
input_file = 'D:/pythoncode/aiSelf/supplier_data.csv'
output_file = 'D:/pythoncode/aiSelf/supplier_data3.csv'
pattern = re.compile(r'(a2.*)')
# with open(input_file, 'r', newline='') as csv_in_file:
# with open(output_file, 'w', newline='') as csv_out_file:
with open(input_file, 'r', newline='', encoding='utf-8') as csv_in_file:
with open(output_file, 'w', newline='', encoding='utf-8') as csv_out_file:
filereader = csv.reader(csv_in_file)
filewriter = csv.writer(csv_out_file)
header = next(filereader)
filewriter.writerow(header)
for row_list in filereader:
invoice_number = row_list[2]
if pattern.search(invoice_number):
filewriter.writerow(row_list)
plt.show()报错
解决方法
法一:将plt.show()改为plt.savefig('图片名'.png)
法二:用其他后端,如TkAgg
报错信息
Traceback (most recent call last):
File "D:\pythoncode\aiSelf\matplotlibtest.py", line 8, in <module>
plt.show()
File "E:\python\python312\Lib\site-packages\matplotlib\pyplot.py", line 614, in show
return _get_backend_mod().show(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.......(省略)
分析
这是PyCharm 的 Matplotlib 后端兼容性问题导致的
修改
法一:
import matplotlib.pyplot as plt
categories = ['a','b','c','d']
values = [10,24,15,8]
plt.bar(categories, values)
plt.xlabel('category')
plt.ylabel('count')
plt.title('category counts')
# plt.show()
plt.savefig('zhuzhuangtutest.png')
法二:
import matplotlib
matplotlib.use('TkAgg') # 或者其他可用的后端,如 'Qt5Agg'
import matplotlib.pyplot as plt
categories = ['a','b','c','d']
values = [10,24,15,8]
plt.bar(categories, values)
plt.xlabel('category')
plt.ylabel('count')
plt.title('category counts')
plt.show()