从Tkin中的askopenfilename函数获取文件路径

2024-04-19 15:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本来自动将一个文件中的特定文本集更改为另一个文件中具有不同名称的特定文本集。

我想使用askopenfilename函数获取文件名,但是当我尝试打印文件名时,它返回:

<_io.TextIOWrapper name='/home/rest/of/file/path/that/I/actually/need.txt' mode='w' encoding='ANSI_X3.4-1968'>

我只需要文件名,因为<_io.TextIOWrapper ...>不可编写子脚本。

有什么建议可以去掉这些多余的部分吗?


Tags: 文件ofpath函数nameio文本脚本
1条回答
网友
1楼 · 发布于 2024-04-19 15:40:17

askopenfilename()返回所选文件的路径,如果未选择任何文件,则返回空字符串:

from tkinter import filedialog as fd

filename = fd.askopenfilename()
print(len(filename))

要打开用askopenfilename选择的文件,只需使用普通的Python结构和函数,例如^{}函数:

if filename:
    with open(filename) as file:
        return file.read()

我认为您正在使用askopenfile,它将打开所选文件并返回_io.TextIOWrapper对象或None,如果您按取消按钮。

如果要坚持使用askopenfile获取刚刚打开的文件的文件路径,只需访问返回的_io.TextIOWrapper对象的name属性即可:

file = fd.askopenfile()
if file: 
    print(file.name)

如果您想进一步了解在Python 2的filedialog(或tkFileDialog)模块下定义的所有函数,可以阅读this article

相关问题 更多 >