在python中使用Windows资源管理器浏览器存储文件路径

0 python variables explorer windows-explorer path

我在python中编写了一些加密代码,它从用户那里获取原始输入消息,然后使用AES对其进行加密和解密.现在我想要增强工作,我希望我可以从我的代码打开Windows资源管理器并浏览到我的计算机上的任何文件,选择它,当我按下OK按钮时,文件的路径存储在一个变量,所以我可以使用它用于处理.

我搜索了很多论坛,我已经设法打开Windows资源管理器,但没有传统的确定和取消按钮.如果用户按下OK按钮,文件的路径应存储在我的代码变量中.

在这方面的任何帮助将受到高度赞赏.

而且,只是为了让你知道我使用了以下代码:

import os
os.system("start.")

但是资源管理器窗口没有任何取消或确定按钮.请帮忙

Jim*_*som 6

这是因为在Windows中打开文件时看到的实际上并不是一个资源管理器窗口,它被称为通用对话框.我假设你正在参考这个对话框:

打开文件对话框

您可以通过不同的方式打开常见的打开对话框,其中最简单的方法可能就是使用Python标准库中的Tkinter模块,即tkFileDialog模块askopenfilename.

示例代码:

import Tkinter
import tkFileDialog

root = Tkinter.Tk()
root.withdraw()

filename = tkFileDialog.askopenfilename(parent=root,title='Open file to encrypt')
Run Code Online (Sandbox Code Playgroud)

至于花括号:你askopenfilenames用来告诉Tk你可能想要多个文件名.这就是为什么你得到一个用花括号括起来的文件名列表.我实际上怀疑Python的Tk绑定有疏忽,因此文件名不会被拆分并返回一个列表,但使用类似这样的代码可以很容易地解决这个问题:

import re
# ...
# ...
filenames = tkFileDialog.askopenfilenames(parent=root)
files_to_process = re.split("\}\W\{", filenames[1:-1])
Run Code Online (Sandbox Code Playgroud)

如果用户选择多个文件,这将为您提供所选文件名的列表.只传递一个文件名时它会中断,所以一定要检查一下这个案例.