使用 Python filedialog askopenfilename() 方法打开文件时如何获取文件类型?
How do you get the file type when a file is opened using the Python filedialog askopenfilename() method?
我用 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”?
open_File = easygui.fileopenbox(msg="Choose a file", default=r'C:\Users\user\*.txt')
extension = open_File.split('.', 1)
print(extension)
所以我在这里所做的是获取用户路径,因为通常在路径中你不会在任何地方有 .
除非它在文件末尾,我已经拆分了string into 2,如果你想要 .
之前的所有内容只需使用 extension = open_File.split('.', 0)
,之后的所有内容使用上面的代码。
此外,虽然我在这种情况下使用的是 Easygui,但它适用于任何文件对话框方法,原则是关于如何从字符串中获取所需内容。
您可以使用 os.path.splitext()
:
import os
...
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")))
_, fext = os.path.splitext(FilePath)
print(fext)
我用 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”?
open_File = easygui.fileopenbox(msg="Choose a file", default=r'C:\Users\user\*.txt')
extension = open_File.split('.', 1)
print(extension)
所以我在这里所做的是获取用户路径,因为通常在路径中你不会在任何地方有 .
除非它在文件末尾,我已经拆分了string into 2,如果你想要 .
之前的所有内容只需使用 extension = open_File.split('.', 0)
,之后的所有内容使用上面的代码。
此外,虽然我在这种情况下使用的是 Easygui,但它适用于任何文件对话框方法,原则是关于如何从字符串中获取所需内容。
您可以使用 os.path.splitext()
:
import os
...
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")))
_, fext = os.path.splitext(FilePath)
print(fext)