报错了'utf-8' codec can't decode byte 0xb1 in position 7: invalid start byte
时间: 2023-07-22 11:03:03 浏览: 144
解决Invalid byte 1 of 1-byte UTF-8 sequence
5星 · 资源好评率100%
这个错误通常是由于文件中包含非UTF-8编码的字符而引起的。您可以尝试以不同的编码方式打开文件来解决这个问题。
下面是一个修改后的代码示例,它尝试使用不同的编码方式打开输入文件:
```python
import csv
input_file = 'input.csv'
output_file = 'output.csv'
# 尝试使用不同的编码方式打开文件
try:
with open(input_file, 'r', encoding='utf-8') as file_in:
reader = csv.reader(file_in)
except UnicodeDecodeError:
with open(input_file, 'r', encoding='gbk') as file_in:
reader = csv.reader(file_in)
with open(output_file, 'w', newline='', encoding='utf-8') as file_out:
writer = csv.writer(file_out)
for row in reader:
new_row = [cell.replace(' ', ',') for cell in row] # 将空格替换为逗号
writer.writerow(new_row)
```
在上述代码中,我们首先尝试使用`utf-8`编码方式打开输入文件。如果出现`UnicodeDecodeError`错误,则表示文件不是以UTF-8编码保存的,我们将尝试使用`gbk`编码方式打开文件。
请根据实际情况修改编码方式,例如,如果文件是以其他编码方式保存的,请将`encoding`参数设置为相应的编码方式。
运行修改后的代码,应该可以解决'utf-8' codec can't decode byte 0xb1 in position 7: invalid start byte错误。
阅读全文