我对 Python 很陌生,但本周开始编写一些小脚本。我目前正在尝试编写一个简单的程序来绘制一些数据。我想做以下事情:
- 要求用户使用 GUI 选择数据目录
- 对于目录中的每个文件,绘制一个图
- 用鼠标单击关闭每个绘图并前进到下一个绘图
我主要是让程序开始工作 - 我可以使用 选择目录tkFileDialog.askdirectory
,然后读入数据,制作绘图并使用鼠标单击推进它们。
我的问题是使用tkFileDialog
. 如果我使用withdraw()
额外的窗口不会打开,但只会出现第一个图(鼠标单击关闭该图但不显示下一个)。如果我不使用withdraw()
,则必须在第一个绘图后手动关闭额外的窗口才能前进到第二个。
我想知道是否有一种方法可以选择避免显示额外窗口的目录?
我附上了一些示例代码来展示我的思考过程。这不会调用实际数据,但仍会重现问题(您需要将.D更改为目录中的某些文件类型):
import numpy as np
from pylab import *
import glob
import os
import Tkinter, tkFileDialog
##################################################
#define the mouse click event
##################################################
def moveon(event):
close()
##################################################
#ask for the directory
##################################################
root = Tkinter.Tk()
#root.withdraw()
direc = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
os.chdir(direc)
for files in glob.glob("*.D*"):
##################################################
#Read in the data
##################################################
#assume this reads x and y from each file
x = [1, 2]
y = [3, 4]
##################################################
#loop though the plots
##################################################
fig = figure(1)
plot(x,y)
cid = fig.canvas.mpl_connect('button_press_event',moveon)
show()