背景:
我们经常需要将csv文件进行格式转换,尤其是将格式为【csv-ansi】格式转换为【csv-utf-8】,那我们可以用python自带的csv库进行转换,而且转换的速度也不慢
方法1—python
首先我们准备好待转换的csv数据,接着我们利用python读取它,友情提示:在读取前我们需要知道它现在的编码格式,因为我们需要用利用python中的csv库去读取它!!
代码
import csv
import os
import tkinter as tk
from tkinter import filedialog, messagebox
def select_input_folder():
folder_path = filedialog.askdirectory(title="请选择 CSV 文件所在的文件夹")
if folder_path:
input_folder_var.set(folder_path)
def select_output_folder():
folder_path = filedialog.askdirectory(title="请选择保存转换后的文件的文件夹")
if folder_path:
output_folder_var.set(folder_path)
def convert_files():
input_folder = input_folder_var.get()
output_folder = output_folder_var.get()
if not input_folder:
messagebox.showerror("错误", "请选择 CSV 文件所在的文件夹!")
return
if not output_folder:
messagebox.showerror("错误", "请选择保存转换后的文件的文件夹!")
return
for f in os.listdir(input_folder):
full_file_path = os.path.join(input_folder, f)
if not os.path.isfile(full_file_path):
continue
try:
with open(os.path.join(output_folder, f), 'w', newline='', encoding='utf-8') as f_w:
writer = csv.writer(f_w)
try:
with open(full_file_path, newline='', encoding='ansi') as csvfile:
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
writer.writerow(row)
except UnicodeDecodeError:
with open(full_file_path, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
writer.writerow(row)
print(f, "转换成功!!!")
except Exception as e:
print(f, "转换失败:", e)
messagebox.showerror("错误", f"文件 {f} 转换失败: {str(e)}")
messagebox.showinfo("完成", "所有文件已转换完成!")
root = tk.Tk()
root.title("CSV 文件转换工具")
root.geometry('400x270')
input_folder_var = tk.StringVar()
output_folder_var = tk.StringVar()
tk.Label(root, text="CSV 文件所在的文件夹:").pack(pady=5)
tk.Entry(root, textvariable=input_folder_var, width=50).pack(pady=5)
tk.Button(root, text="选择文件夹", command=select_input_folder).pack(pady=5)
tk.Label(root, text="保存转换后的文件夹:").pack(pady=5)
tk.Entry(root, textvariable=output_folder_var, width=50).pack(pady=5)
tk.Button(root, text="选择文件夹", command=select_output_folder).pack(pady=5)
tk.Button(root, text="开始转换", command=convert_files).pack(pady=20)
root.mainloop()
方法2—记事本
【右击】用【记事本】打开一个csv文件,点击左上角【文件】——点击【另存为】——编码选择【UTF-8】——点击【保存】——是否替换点击【是】




结尾:
非常简单的小代码,分享给大家
如果你想阅读更多关Python办公自动化的知识点,欢迎查看我的专栏——>Python办公自动化
感谢大家阅读,希望能给个 关注+点赞