python实现选择文件_用tkinter 实现从文件夹选择文件并显示
如何使用tkinter打开一个excel表格并读取数据,并显示出来?
1、使用filedialog,打开文件夹并选择文件
代码如下:
#选择文件
def openfile():
sfname = filedialog.askopenfilename(title='选择Excel文件', filetypes=[('Excel', '*.xlsx'), ('All Files', '*')])
return sfname
2、使用treeview(树状表格)显示出来
代码如下:
def showdata(frame,data):
# 定义树状图表格函数
'''
frame:容器
data:数据,数据类型为列表
'''
nrows = len(data)
ncols = len(data[0])
columns = [""]
for i in range(ncols):
columns.append(str(i))
heading = columns
"""
定义Treeview
self.Frame2为父容器
columns为列名集合
show="headings"表示显示表头
"""
tree = ttk.Treeview(frame, columns=columns, show="headings")
# 定义各列列宽及对齐方式
for item in columns:
tree.column(item, width=50, anchor="center")
tree.heading(heading[0], text=heading[0]) #第一列的表头为空
# 定义表头
for i in range(1, len(columns)):
tree.heading(heading[i], text=str(i))
# 设置表格内容
i = 0
for v in data:
v.insert(0, i + 1) #第一列的显示内容(序号)
tree.insert('', i, values=(v))
i += 1
# 放置控件,rel*表示使用相对定位,相对于父容器的定位
# tree.place(relx=0, rely=0, relwidth=1, relheight=1)
return tree
完整代码如下:
from tkinter import filedialog
import xlrd
import tkinter as tk
from tkinter import ttk
#选择文件
def openfile():
sfname = filedialog.askopenfilename(title='选择Excel文件', filetypes=[('Excel', '*.xlsx'), ('All Files', '*')])
return sfname
"输入文件名,返回数据"
def readdata(sfname):
# 读取表格数据
book = xlrd.open_workbook(sfname)
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
print('表格总行数', nrows)
ncols = sheet1.ncols
print('表格总列数', ncols)
values = []
for i in range(nrows):
row_values = sheet1.row_values(i)
values.append(row_values)
return values
def showdata(frame,data):
# 定义树状图表格函数
'''
frame:容器
data:数据,数据类型为列表
'''
nrows = len(data)
ncols = len(data[0])
columns = [""]
for i in range(ncols):
columns.append(str(i))
heading = columns
"""
定义Treeview
self.Frame2为父容器
columns为列名集合
show="headings"表示显示表头
"""
tree = ttk.Treeview(frame, columns=columns, show="headings")
# 定义各列列宽及对齐方式
for item in columns:
tree.column(item, width=50, anchor="center")
tree.heading(heading[0], text=heading[0]) #第一列的表头为空
# 定义表头
for i in range(1, len(columns)):
tree.heading(heading[i], text=str(i))
# 设置表格内容
i = 0
for v in data:
v.insert(0, i + 1) #第一列的显示内容(序号)
tree.insert('', i, values=(v))
i += 1
# 放置控件,rel*表示使用相对定位,相对于父容器的定位
# tree.place(relx=0, rely=0, relwidth=1, relheight=1)
return tree
#打开文件并以树状表格形式显示
def openshow():
global root
filename=openfile()
data=readdata(filename)
tree=showdata(root,data)
tree.place(relx=0.03,rely=0.2,relheight=0.7,relwidth=0.9)
def main():
global root
root = tk.Tk()
root.title("打开文件")
root.geometry("600x400")
B1 = tk.Button(root, text="打开文件", command=openshow)
B1.place(relx=0.03,rely=0.05)
root.mainloop()
if __name__=='__main__':
main()
参考文献1(打开文件)
https://www.cnblogs.com/SH170706/p/10443947.html
参考文献2(treeview)
https://www.cnblogs.com/yang-2018/p/11824250.html
原文链接:https://blog.csdn.net/weixin_43184622/article/details/107054131
python实现选择文件_用tkinter 实现从文件夹选择文件并显示相关推荐
- python拖拽获取文件路径_求助tkinter模块如何获取拖拽文件的内容
from tkinter import filedialog import xlrd import tkinter as tk from tkinter import ttk import windn ...
- python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
我在PyCharm开始了一个新项目.我安装了Anaconda 3.6.所以,在PyCharm中,我选择了Anaconda python.exe作为项目解释器. 当我第一次运行PyCharm时,它使用I ...
- python导入库关键词_怎么样导入RobotFramework 自定义关键字(库文件)
标准库关键字在使用的过程中,简单的需求还是可以满足.但是遇到有些需求还是不好满足的,还是需要自己去编码,自定义库文件关键字. -----------------来自小马哥的故事 假设python的安装 ...
- python 3d游戏脚本_【Maya】pythonInMaya_调用外部脚本文件
通常我们会在maya的脚本编辑器中执行python代码,如果是使用外部的.py脚本文件,两种方法可选: 1. 使用File菜单下的LoadScript载入.py脚本文件的内容,然后在编辑 ...
- 基于python的计算基因组_科学网—python3 计算 基因组测序结果文件 各碱基数目(个人练习) - 靳泽星的博文...
基因组测学回来的结果后,从assembly(组装)里找到序列文件,格式可能是:.fasta..fastq..seq.和.contig.fastq要转化为fasta,转化方法网上一大把哈.我的基因组序列 ...
- qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头
点击上方"开发者的花花世界",选择"设为星标"技术干货不定时送达! 这是一个知识点 方便快捷的给结构化数据文件分割大小并保留文件的表头,几十个G的结构化文件不仅 ...
- 如何恢复录音删除的录音文件_硬盘分区数据误删除如何恢复?文件删除不用急...
硬盘分区数据误删除如何恢复?相信很多人在安装系统或者重装电脑时,往往也都会对电脑原有数据的卷大小进行调整,以此来满足我们日常使用的需求.然而对于一些新手来说,在操作时也都容易不小心把整个硬盘的分区给删 ...
- .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具
文件混乱用这1款神器就够了 目录 [url=]DropIt 的使用思路[/url] [url=]快捷调用 DropIt 的两种方式[/url] [url=]配合 IrfanView 对图片进行操作[/ ...
- c++读取utf8文件_经常在日常工作中处理统一码文件(or其他编码)?这篇必读
全文共2717字,预计学习时长5分钟 对于那些经常在日常工作中处理统一码文件(也适用于其他编码)的人来说,这篇文章是必读的.对于自然语言处理的从业者,处理统一码文件是一场噩梦,尤其是使用Windows ...
- linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国
众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...
最新文章
- 教育部:“博士分流淘汰制”真来了!不合格的导师,退出!
- easyui placeholder 解决方案
- Linux的编译器vi之最详细介绍
- Java的坏功能是什么
- 【计算机网络】比较TCP与UDP
- 《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一第 3 章 理性模型有哪些缺陷...
- VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
- android 虚拟按键挡住布局,Android 虚拟按键遮住了页面内容解决办法
- html5 audio左侧,HTML5之Audio(四)—— 左右声道
- DoraCloud for Proxmox桌面云上启用NVIDIA Tesla P4的vGPU功能
- 数据库查询语句(书上例题)
- python爬取智联招聘职位信息(单进程)
- 版式设计在界面中的应用
- 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案
- 利用云开发+Vant-Weapp开发的校园二手交易小程序
- iview中纯CSS美化select和Cascader滚动条
- 爬虫学习(10):xpath爬取包图网高清模板视频
- Matlab var(转)
- C8051F系列单片机技术问答
- mysql 行级锁的使用