Я пытаюсь создать программу, которая позволит пользователю выбрать файл со своего компьютера и затем открыть его.Я пытался сделать это с Python, и ...
filedialog.askopenfilenames()
... с этим виджетом Tkinter.
Я могу получить путь к файлу из этого успешно, но какЯ использую это, чтобы фактически открыть файл?(Я пытаюсь открыть его в приложении по умолчанию, а не просто распечатать его на консоли Python.) Я пытался использовать
from subprocess import call
call(['xdg-open','filename'])
с «файлами» (переменная, в которой хранится имя файла), заменяя 'filename', но я получаю следующую ошибку:
Traceback (most recent call last):
File "/Users/charlierubinstein/Documents/Search Engine.py", line 9, in <module>
call(['xdg-open', files])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1275, in _execute_child
restore_signals, start_new_session, preexec_fn)
TypeError: expected str, bytes or os.PathLike object, not tuple
мой код:
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from subprocess import call
files = filedialog.askopenfilenames()
call(['xdg-open', files])
window.mainloop()
Как указывалось ранее, в идеале эта программа позволит пользователю выбрать файли откройте этот файл в приложении по умолчанию.