Python Tkinter CSV 查看器:导入和显示 CSV 数据
以下是一个示例代码,其中包含两个按钮,一个用于导入 CSV 文件,另一个用于查看 CSV 文件内容:
import tkinter as tk
import csv
class CSVViewer(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.master = master
self.master.title('CSV Viewer')
# 创建导入 CSV 文件的按钮
self.import_button = tk.Button(self.master, text='Import CSV', command=self.import_csv)
self.import_button.pack()
# 创建查看 CSV 文件内容的按钮
self.view_button = tk.Button(self.master, text='View CSV', command=self.view_csv)
self.view_button.pack()
self.csv_data = None # 用于存储导入的 CSV 数据
def import_csv(self):
# 弹出文件选择对话框
file_path = tk.filedialog.askopenfilename(filetypes=[('CSV Files', '*.csv')])
if file_path:
# 读取 CSV 文件并保存数据
with open(file_path, 'r') as f:
reader = csv.reader(f)
self.csv_data = list(reader)
def view_csv(self):
if self.csv_data:
# 创建新的窗口用于显示 CSV 数据
view_window = tk.Toplevel(self.master)
view_window.title('CSV Viewer')
# 创建表格用于显示 CSV 数据
for i, row in enumerate(self.csv_data):
for j, item in enumerate(row):
tk.Label(view_window, text=item).grid(row=i, column=j)
else:
# 如果没有导入 CSV 数据,弹出错误消息框
tk.messagebox.showerror('Error', 'No CSV data imported')
if __name__ == '__main__':
root = tk.Tk()
app = CSVViewer(root)
app.pack()
root.mainloop()
该代码中,CSVViewer 类继承自 tk.Frame,并包含 import_csv 和 view_csv 两个方法,分别用于导入 CSV 文件和查看 CSV 文件内容。在 import_csv 方法中,通过 tk.filedialog.askopenfilename 弹出文件选择对话框,读取选中的 CSV 文件,并将数据存储在 self.csv_data 中。在 view_csv 方法中,如果已经导入了 CSV 数据,则创建一个新的窗口用于显示 CSV 数据,通过嵌套 tk.Label 将每个 CSV 数据项放置在表格中展示。
在 if __name__ == '__main__': 中,创建 tk.Tk 实例并将其传递给 CSVViewer 类,然后启动主循环。
原文地址: https://www.cveoy.top/t/topic/n2tf 著作权归作者所有。请勿转载和采集!