Python检测CSV中文字符并拆分中英文内容分别保存
完整实现方案
直接使用Python内置的csv标准库即可完成读取、分类、写入全流程,无需安装任何第三方依赖。
你已经实现的is_chinese判断函数可以直接复用,完整可运行代码如下:
import csv def is_chinese(string): for ch in string: if u'\u4e00' <= ch <= u'\u9fff': return True return False # 配置文件路径 SOURCE_FILE = "your_original_file.csv" EN_OUTPUT = "English.csv" ZH_OUTPUT = "Chinese.csv" if __name__ == "__main__": # 同时打开源文件和两个输出文件,newline参数避免写入csv时出现多余空行 with open(SOURCE_FILE, "r", encoding="utf-8", newline="") as f_src, \ open(EN_OUTPUT, "w", encoding="utf-8", newline="") as f_en, \ open(ZH_OUTPUT, "w", encoding="utf-8", newline="") as f_zh: # 初始化CSV读取器,自动识别表头 reader = csv.DictReader(f_src) # 初始化两个写入器,字段和源文件完全一致 writer_en = csv.DictWriter(f_en, fieldnames=reader.fieldnames) writer_zh = csv.DictWriter(f_zh, fieldnames=reader.fieldnames) # 两个输出文件都先写入公共表头 writer_en.writeheader() writer_zh.writeheader() # 逐行遍历分类 for row in reader: # 拼接当前行所有字段内容判断,避免漏判非name字段的中文 line_content = "".join(row.values()) if is_chinese(line_content): writer_zh.writerow(row) else: writer_en.writerow(row)
使用说明
- 运行前将代码中
SOURCE_FILE变量的值替换为你原始CSV文件的实际路径即可 - 代码默认使用UTF-8编码读写文件,不会出现中文乱码问题,兼容Windows、macOS、Linux全平台
- 如果你确定仅
name字段可能出现中文字符,可以将判断逻辑替换为is_chinese(row["name"]),执行效率会略有提升,分类结果不变 - 运行完成后,同目录下会自动生成两个目标文件:
English.csv:保留公共表头 + 所有不含中文字符的数据行(即示例中hali对应的行)Chinese.csv:保留公共表头 + 所有包含中文字符的数据行(即示例中张三、云lee对应的行)
内容的提问来源于stack exchange,提问作者lex9527
相关产品推荐
相关产品推荐

