将中文的内容,with open函数插入CSV后,CSV的内容显示为乱码。(应该是Quicker默认环境不是UTF-8编码格式造成的)
代码中插入的中文内容示例:
CSV文件中写入的中文结果示例:
完整代码示例如下:
##.py
sample_text = quicker.context.GetVarValue('纯文章内容')
import csv
import os
def split_text_into_chunks(text, chunk_size=3000):
"""
将文本切割成指定大小的段落。
参数:
text (str): 需要被切割的原始文本。
chunk_size (int): 每个段落的最大字符数,默认为3000。
返回:
list of str: 包含切割后段落的列表。
"""
# 确保输入是字符串
if not isinstance(text, str):
raise ValueError("输入必须是字符串类型")
# 文本长度小于等于指定长度时,直接返回原文
if len(text) <= chunk_size:
return [text]
chunks = [] # 用于存储切割后的段落
current_chunk = "" # 当前正在构建的段落
# 遍历文本中的每个字符
for char in text:
# 如果加上当前字符后不超过最大长度,则添加到当前段落
if len(current_chunk) + len(char) <= chunk_size:
current_chunk += char
else:
# 否则,将当前段落添加到列表中,并开始新的段落
chunks.append(current_chunk)
current_chunk = char
# 不要忘记将最后一个段落也添加进去
if current_chunk:
chunks.append(current_chunk)
return chunks
# 调用函数
chunks = split_text_into_chunks(sample_text, 3000)
# CSV文件路径
csv_file_path = r'C:\Users\123\Desktop\人工智能_立项_AI知识库.csv'
# 初始化计数器,用于第一列的序号(如果需要的话)
row_num = 0
# 检查文件是否存在,如果不存在则创建
with open(csv_file_path, mode='a+', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
# 移动到文件末尾,检查是否有内容(首次写入时定位)
csvfile.seek(0, os.SEEK_END)
if csvfile.tell() == 0: # 文件为空
# 写入表头,如果需要的话
writer.writerow(['列1标题', '列2标题']) # 添加第二列的标题
# 遍历chunks列表
for chunk in chunks:
row_num += 1
# 写入数据,第一列是递增的序号或根据实际情况调整,第二列是chunk的内容
writer.writerow([row_num, "你说吧交定金扥竞赛反动看法送来将三点了京东"]) # 假设第一列是递增序号
# 如果第一列不需要序号,可以直接写为:writer.writerow(['', chunk])
quicker.context.SetVarValue('text',chunks)
已解决,将a+写入的模式,改为w模式或者a模式即可