Traceback (most recent call last): File "C:/Users/WangLinYong/Desktop/code/MLPB/summarization_main.py", line 823, in <module> writer.writerow([i, string1, string2]) UnicodeEncodeError: 'gbk' codec can't encode character '\xa3' in position 76: illegal multibyte sequence
时间: 2024-04-22 07:24:48 浏览: 17
这个错误通常发生在尝试将非 ASCII 字符写入使用 'gbk' 编码的文件时。为了解决这个问题,你可以将文件的编码格式更改为支持包含非 ASCII 字符的编码,例如 'utf-8'。
你可以按照以下步骤修改代码:
1. 在打开文件时,将 `encoding` 参数设置为 'utf-8',以确保文件以 UTF-8 编码进行写入。
2. 在写入 CSV 文件时,将字符串转换为 UTF-8 编码。
以下是修改后的示例代码:
```python
import csv
data = [
("document1_string1", "document1_string2"),
("document2_string1", "document2_string2"),
# ... 其他 8 个元组
]
filename = "data.csv"
# 写入 CSV 文件
with open(filename, mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file, delimiter='</gap>', quotechar='"', quoting=csv.QUOTE_MINIMAL)
# 写入表头
writer.writerow(["index", "document", "summary"])
# 写入数据
for i, (string1, string2) in enumerate(data, start=1):
writer.writerow([i, string1.encode('utf-8'), string2.encode('utf-8')])
print(f"Data written to {filename} successfully.")
```
在上面的示例中,我们在打开文件时添加了 `encoding='utf-8'` 参数,以确保文件以 UTF-8 编码进行写入。
在写入 CSV 文件时,我们使用 `string.encode('utf-8')` 将字符串转换为 UTF-8 编码。
请注意,这里的字符串必须是 Unicode 字符串才能进行编码转换。如果字符串已经是字节串或者已经包含正确的编码,你可以直接写入而无需进行编码转换。
希望这个解决方案能够帮助到你!如果你还有其他问题,请随时提问。