0

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

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

在这方面的任何帮助将不胜感激。

此外,只是为了让您知道我使用了以下代码:

导入操作系统
os.system("开始 .")

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

4

1 回答 1

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')

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

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

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

于 2010-09-04T18:27:01.823 回答