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

在python中使用windows资源管理器浏览器存储文件路径,python,variables,path,explorer,windows-explorer,Python,Variables,Path,Explorer,Windows Explorer,我用python编写了一些加密代码,从用户那里获取原始输入消息,然后使用AES对其进行加密和解密。现在我想增强工作,我想我可以从我的代码打开windows资源管理器,浏览到我计算机上的任何文件,选择它,当我按下“确定”按钮时,文件的路径存储在一个变量中,以便我可以使用它进行处理 我搜索了很多论坛,我成功地打开了windows资源管理器,但没有传统的“确定”和“取消”按钮。如果用户按下OK按钮,文件的路径应该存储在my code变量中 我们将非常感谢您在这方面提供的任何帮助 此外,为了让您知道,我

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

我搜索了很多论坛,我成功地打开了windows资源管理器,但没有传统的“确定”和“取消”按钮。如果用户按下OK按钮,文件的路径应该存储在my code变量中

我们将非常感谢您在这方面提供的任何帮助

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

导入操作系统
操作系统(“启动”)


但是资源管理器窗口没有任何“取消”或“确定”按钮。请提供帮助

这是因为在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])

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

这是因为在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])

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

啊……这正是我想要的。不幸的是,我是python的初学者,所以不知道如何使用它。我假设我必须导入tkFileDialog以及如何使用askopenfilename。。。如果你能提供一行语法供我理解,那就太好了。我使用了下面的代码,在互联网上搜索它。从tkFileDialog导入askopenfilenames a=askopenfilenames()打印a这解决了我的问题,但唯一的问题是它在花括号中给出了输出,如何删除这些花括号或没有它们的读取路径?还会出现一个空白的小窗口,它什么也不做?如何避免打开它,它也会自动打开。知道为什么吗?{C:/Users/miracle/Desktop/testing python file read/testit.txt}从tkFileDialog导入askopenfilenames文件\u name=askopenfilenames()打印文件\u name myfile=open(文件名)发生以下错误。据我所知,这是因为花括号,可能是我们需要添加特殊模式来读取文件,所提供的路径选择。IOError:[Errno 22]无效模式('r')或文件名:u'{C:/Users/miracle/Desktop/testing python file read/fahad.txt}'请指导!您看到的窗口是Tk根窗口,在本例中,您可以轻松地将其撤消,从而隐藏它。我在上面的答案中添加了一段代码。啊……这正是我想要的。不幸的是,我是python的初学者,所以不知道如何使用它。我假设我必须导入tkFileDialog以及如何使用askopenfilename。。。如果你能提供一行语法供我理解,那就太好了。我使用了下面的代码,在互联网上搜索它。从tkFileDialog导入askopenfilenames a=askopenfilenames()打印a这解决了我的问题,但唯一的问题是它在花括号中给出了输出,如何删除这些花括号或没有它们的读取路径?还会出现一个空白的小窗口,它什么也不做?如何避免打开它,它也会自动打开。知道为什么吗?{C:/Users/miracle/Desktop/testing python file read/testit.txt}从tkFileDialog导入askopenfilenames文件\u name=askopenfilenames()打印文件\u name myfile=open(文件名)发生以下错误。据我所知,这是因为花括号,可能是我们需要添加特殊模式来读取文件,所提供的路径选择。IOError:[Errno 22]无效模式('r')或文件名:u'{C:/Users/miracle/Desktop/testing python file read/fahad.txt}'请指导!您看到的窗口是Tk根窗口,在本例中,您可以轻松地将其撤消,从而隐藏它。我在上面的答案中添加了一个代码片段。