如果CSV打开乱码,一般解决方法是:用记事本打开,另存为UTF-8 BOM。保存ok。
但CSV文件很大就很难了,因为加载效率很低。
或者你日常和数据打交道,每次都要打开保存,操作很繁琐——
>>>> 那么这款小工具适合你:
(以下内容看图就行)
工具概述
这是一款专注于单一功能的桌面应用:将CSV文件快速转换为UTF-8 BOM编码格式。它采用了直观的拖放界面,无需复杂设置,几秒钟内即可完成转换,让数据在Excel、数据库导入工具等各类应用中正确显示中文、日文等特殊字符。
详细使用指南
基本操作流程
-
启动应用:双击打开应用后,您将看到一个简洁的主界面,中央有一个明显的拖放区域。
-
添加文件:有两种方式添加CSV文件:
- 直接从文件资源管理器拖拽文件到应用界面
- 点击拖放区域,通过文件选择对话框选择文件
-
开始转换:文件添加后会显示在列表中,点击"立即转换"按钮开始处理。
-
查看结果:转换完成后,原目录中会生成新的UTF-8 BOM格式文件,命名为"原文件名_utf8_bom.csv"。
实际应用场景
这款工具在以下场景特别有用:
- 数据分析准备:将从各种系统导出的CSV文件统一转换为UTF-8 BOM格式,确保数据分析工具正确读取
- 跨系统数据迁移:在Windows与Mac/Linux系统间传输数据文件时,确保字符编码一致
- 多语言数据处理:处理包含中文、日文、韩文等非ASCII字符的数据集
- Excel导入优化:解决Excel打开CSV文件时中文显示乱码的问题
源代码
资源包里也有源码,可以自己调试改一下!
核心转换功能:
def convert_files(self, files_to_convert):
"""执行转换操作"""
completed = 0
success_count = 0
for i, file_info in enumerate(files_to_convert):
# 更新进度
self.root.after(0, lambda i=i, total=len(files_to_convert):
self.progress_label.config(text=f"正在处理 ({i+1}/{total})"))
# 更新文件状态
self.root.after(0, lambda fi=file_info: self.update_file_status(fi, "转换中"))
try:
# 读取原始文件
df = pd.read_csv(file_info["path"])
# 生成新路径
directory = os.path.dirname(file_info["path"])
filename = os.path.basename(file_info["path"])
base_name = os.path.splitext(filename)[0]
new_name = f"{base_name}_utf8_bom.csv"
new_path = os.path.join(directory, new_name)
# 模拟处理时间
time.sleep(0.5)
# 保存为UTF-8 BOM
df.to_csv(new_path, index=False, encoding="utf-8-sig")
# 更新状态
self.root.after(0, lambda fi=file_info: self.update_file_status(fi, "已完成"))
success_count += 1
except Exception as e:
# 更新状态为失败
self.root.after(0, lambda fi=file_info, err=str(e):
self.update_file_status(fi, "失败", error=err))
completed += 1
# 完成后更新UI
self.root.after(0, lambda: self.finish_conversion(success_count, len(files_to_convert)))
下载地址
关注并私信博主,或从顶部链接下载!
https://download.youkuaiyun.com/download/calvin189s/90481216