def import_csv_data(): global file_path file_path = filedialog.askopenfilename() #读取CSV文件并显示在Text控件上 data = pd.read_csv(file_path) #获取前10行数据 top_5 = data.head(10) #讲前10行数据插入到Text控件 txt_data.insert(tk.END,top_5) #创建导入按钮和文本框 btn_import = tk.Button(root, text="导入CSV文件",command=import_csv_data) btn_import.pack() txt_data = tk.Text(root) txt_data.pack() #核心部分 #正则表达式导入CSV文件 def import_csv(): global path global data path=filedialog.askopenfilename() try: re.finditer('(.*?).csv',path) data=pd.read_csv(path) txt.insert(tk.END,'导入成功!\n') tk.messagebox.showinfo(title='成功', message='导入成功!') except: tk.messagebox.showinfo(title='错误',message='请重新选择') button1=tk.Button(window,text='选择csv文件',command=import_csv) button1.pack(side='top',anchor='nw')哪里错了
时间: 2023-11-28 22:49:13 浏览: 86
代码中存在一些错误:
1. 在导入函数中,变量名 `txt` 没有被定义。你需要先创建一个文本框(如 `txt_data`),然后在这个文本框中显示导入的数据。
2. 在使用正则表达式判断文件名是否为 csv 格式时,你需要使用 `re.search` 方法,而不是 `re.finditer` 方法。
下面是修改后的代码:
```
import tkinter as tk
from tkinter import filedialog, messagebox
import pandas as pd
import re
root = tk.Tk()
root.geometry('400x400')
file_path = ""
data = None
def import_csv_data():
global file_path
file_path = filedialog.askopenfilename()
# 读取CSV文件并显示在Text控件上
data = pd.read_csv(file_path)
# 获取前10行数据
top_5 = data.head(10)
# 将前10行数据插入到Text控件
txt_data.insert(tk.END, top_5)
# 核心部分
# 正则表达式导入CSV文件
def import_csv():
global data
path = filedialog.askopenfilename()
if re.search('(.*?).csv', path):
try:
data = pd.read_csv(path)
txt_data.insert(tk.END, str(data.head(10)))
tk.messagebox.showinfo(title='成功', message='导入成功!')
except:
tk.messagebox.showinfo(title='错误',message='请重新选择')
else:
tk.messagebox.showinfo(title='错误',message='请选择csv文件')
btn_import = tk.Button(root, text="导入CSV文件",command=import_csv_data)
btn_import.pack()
txt_data = tk.Text(root)
txt_data.pack()
button1 = tk.Button(root, text='选择csv文件', command=import_csv)
button1.pack(side='top', anchor='nw')
root.mainloop()
```
阅读全文