首页 > 解决方案 > 使用 Python filedialog askopenfilename() 方法打开文件时如何获取文件类型?

问题描述

我有这个用 python tkinter 编写的程序,它使用 tkinter filedialog askopenfilename() 方法打开一个文件。它将获取该文件的内容并将其插入文本框。

我希望能够获取该文件的文件类型(即,如果文件是 Python 文件,那么我希望控制台打印“.py”,如果它的 HTML 则我希望它打印“.html”等等) .

所以这就是我尝试的:

FilePath = filedialog.askopenfilename(initialdir="C:/gui/", title="Open a File", filetypes=(("All Files", "*.*"), ("Text Files", "*.txt"), ("HTML Files", "*.html"), ("CSS Files", "*.css"),("JavaScript Files", "*.js"), ("Python Files", "*.py")))

print(FilePath)

但是,这给了我:/home/Test/RandomFolder/Test.py

是否有可能在最后得到“.py”?

标签: pythonpython-3.xtkinterfile-type

解决方案


open_File = easygui.fileopenbox(msg="Choose a file", default=r'C:\Users\user\*.txt')

extension = open_File.split('.', 1)

print(extension)

所以我在这里所做的是获取用户路径,因为通常在一个路径中你不会有.任何地方,除非它在文件的末尾,如果你想要之前的所有内容,我已经将字符串拆分为 2.刚刚使用extension = open_File.split('.', 0),以及使用上述代码后的所有内容。

此外,虽然我在这种情况下使用的是 Easygui,但它适用于任何文件对话框方法,其原理是关于如何从字符串中获取所需内容。


推荐阅读