我正在创建一个带有浏览按钮的GUI,我只想返回路径.我一直在寻找使用如下代码的解决方案.
Tkinter.Button(subframe, text = "Browse", command = self.loadtemplate, width = 10).pack()
def loadtemplate(self):
filename = tkFileDialog.askopenfilename(filetypes = (("Template files", "*.tplate")
,("HTML files", "*.html;*.htm")
,("All files", "*.*") ))
if filename:
try:
self.settings["template"].set(filename)
except:
tkMessageBox.showerror("Open Source File", "Failed to read file \n'%s'"%filename)
Run Code Online (Sandbox Code Playgroud)
但是我知道Tkinter有一个内置的,askopenfilename这是一个非常简单的一行代码来打开文件.有没有办法修改它来返回目录而不是文件?是否有比我发布的更大代码块更小的选项?
我有一个简单的函数来检查目录:
:direxist
if not exist %~1 (
echo %~1 could not be found, check to make sure your location is correct.
goto:end
) else (
echo %~1 is a real directory
goto:eof
)
Run Code Online (Sandbox Code Playgroud)
:结束写成
:end
endlocal
Run Code Online (Sandbox Code Playgroud)
我不明白为什么程序不会在goto:end被调用后停止.我有另一个函数使用相同的方法来停止程序,它工作正常.
:PRINT_USAGE
echo Usage:
echo ------
echo <file usage information>
goto:end
Run Code Online (Sandbox Code Playgroud)
在这种情况下,程序在调用后停止:end; 为什么这不起作用:direxist?谢谢您的帮助!
我有一个Python GUI,用于测试我工作的各个方面.目前我有一个"停止"按钮,可以在每次测试结束时终止进程(可以设置多个测试立即运行).但是,有些测试需要很长时间才能运行,如果我需要停止测试,我希望它立即停止.我的想法是使用
import pdb; pdb.set_trace()
exit
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何将它注入到下一行代码中.这可能吗?
我正在使用tkinter构建的GUI的一部分有一个弹出窗口,上面写着"请等待程序运行".然后它完成后窗户就会消失.我正在使用widget.after命令打开窗口并运行命令.但是,如果我传递函数我调用参数然后弹出窗口永远不会发生.这是一个例子:
def backupWindow
self.restoreCB = Toplevel()
message = "Please wait while backup runs"
Label(self.restoreCB, text=message, padx=100, pady=20).pack()
widget.after(10, self.runBackup)
def runBackup(self):
<backup code>
self.backupCB.destroy()
Run Code Online (Sandbox Code Playgroud)
这样运行正常并按照我的要求执行操作,在备份运行时弹出窗口,然后在备份后窗口关闭.但是,如果我从widget中传递和参数,就像下面的代码一样,"请稍候"消息永远不会显示出来.
def backupWindow
self.restoreCB = Toplevel()
message = "Please wait while backup runs"
Label(self.restoreCB, text=message, padx=100, pady=20).pack()
widget.after(10, self.runBackup(mybackup))
def runBackup(self,mybackup):
<backup code using mybackup>
self.backupCB.destroy()
Run Code Online (Sandbox Code Playgroud) 如何让 python 返回 C:\myfolderisafolder\test 的完整路径名?
我在日志文件中有测试结果,格式如下:
无用的信息
无用的信息
======================
有用的信息
有用的信息
======================
测试成功
每个部分中的行数可以变化,因此我想检查双重等号'=='的第一次出现,并将该行读取到文件末尾为字符串.目前我正在使用以下代码将整个文件读入字符串.
with open ("Report.txt", "r") as myfile:
data = myfile.read()
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
我遇到的问题是在路径上使用os.stat的一部分(例如,以C:\ myfile1.txt为例).当我在这个文件上运行os.stat并在结果列表中取第9个元素时,我得到了一些数字形式的修改时间(例如1348167977).
注意:我不确定如何计算这些数字.
当我创建C:\ myfile1.txt时,它有一些数字,如上例所示.如果我创建另一个文件C:\ myfile2.txt,它会得到一个代表修改时间的新数字,该数字高于C:\ myfile1.txt(这就像我期望的那样).我还有一个最后创建的第三个文件C:\ myfile3.txt.
如果我复制C:\ myfile2.txt并用生成的复制文件覆盖C:\ myfile3.txt,则会出现问题,新的C:\ myfile3.txt上的os.stat显示的修改时间小于C:\ myfile1.txt.为什么会这样?C:\ myfile3.txt的修改时间应该是最高或者至少等于C:\ myfile2.txt.
谢谢你的回答,我希望我能够解释得很清楚.
编辑:
这里有一些示例代码来测试我描述的内容.有时,如果你在不同的时间重新运行数字,它们的工作原理会有所不同.我想我只是不完全理解我输出的MTIME.
import os
import shutil
import time
myfile1 = open("C:\\myfile1.txt", 'wt')
myfile1.close()
time.sleep(10)
myfile2 = open("C:\\myfile2.txt", 'wt')
myfile2.close()
time.sleep(10)
myfile2 = open("C:\\myfile3.txt", 'wt')
myfile2.close()
shutil.copyfile("C:\\myfile2.txt", "C:\\myfile3.txt")
modified_time_first = (os.stat("C:\\myfile1.txt")[9])
modified_time_second = (os.stat("C:\\myfile2.txt")[9])
modified_time_third = (os.stat("C:\\myfile3.txt")[9])
print "The first files modified time is: "
print modified_time_first
print ""
print "The second files modified time is: "
print modified_time_second
print ""
print "The third files …Run Code Online (Sandbox Code Playgroud)