小编Bra*_*ers的帖子

如何在Python中使用tkinter选择目录并存储位置

我正在创建一个带有浏览按钮的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这是一个非常简单的一行代码来打开文件.有没有办法修改它来返回目录而不是文件?是否有比我发布的更大代码块更小的选项?

python directory tkinter button python-2.x

26
推荐指数
2
解决办法
8万
查看次数

如何从函数中退出批处理文件?

我有一个简单的函数来检查目录:

: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?谢谢您的帮助!

goto batch-file exit

14
推荐指数
2
解决办法
5万
查看次数

如何从Tkinter窗口立即停止Python进程?

我有一个Python GUI,用于测试我工作的各个方面.目前我有一个"停止"按钮,可以在每次测试结束时终止进程(可以设置多个测试立即运行).但是,有些测试需要很长时间才能运行,如果我需要停止测试,我希望它立即停止.我的想法是使用

import pdb; pdb.set_trace()
exit
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何将它注入到下一行代码中.这可能吗?

python tkinter inject

5
推荐指数
1
解决办法
2140
查看次数

无法从tkinter widget.after函数传递参数

我正在使用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 arguments window tkinter popup

4
推荐指数
2
解决办法
6831
查看次数

4
推荐指数
1
解决办法
1014
查看次数

如何在不知道行号的情况下将文件读取到从给定单词开始的字符串?

我在日志文件中有测试结果,格式如下:

无用的信息

无用的信息

======================

有用的信息

有用的信息

======================

测试成功

每个部分中的行数可以变化,因此我想检查双重等号'=='的第一次出现,并将该行读取到文件末尾为字符串.目前我正在使用以下代码将整个文件读入字符串.

with open ("Report.txt", "r") as myfile:
    data = myfile.read()
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

python string file

2
推荐指数
1
解决办法
1万
查看次数

复制文件时,在Python中使用os.stat的修改时间会降低

我遇到的问题是在路径上使用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)

python file copying stat

0
推荐指数
1
解决办法
4620
查看次数