#python #python-3.x #tkinter #operating-system #pywin32
#python #python-3.x #tkinter #операционная система #pywin32
Вопрос:
Я новичок в программировании, и у меня есть следующий сценарий
import os
import tkinter as tk
import win32print
import win32com.shell.shell as shell
import win32api
root = tk.Tk()
root.title('Printing file app')
root.geometry('400x200')
check_var_list = []
file_list = []
def Print_act():
def Print(file_link):
print(file_link)
win32print.SetDefaultPrinter('Printer_Name')
win32api.ShellExecute(0, "print", file_link, None, '.', 0)
for open_or_close, file_nam in zip(check_var_list, file_list):
if open_or_close.get() == 1:
file_link = os.path.join(t.get(), file_nam)
os.startfile(file_link)
Print(file_link)
else:
continue
def show_os(event):
if not os.path.exists(t.get()):
entry.destroy()
label.destroy()
la = tk.Label(root, text='Your file path is wrong or does not exist.')
la.pack(pady=23)
la.configure(font=('Century', 15, 'bold'))
root.geometry('800x200')
else:
entry.destroy()
label.destroy()
b = tk.Button(root, text='Open', command=Print_act).pack()
for roots, dirs, files in os.walk(t.get()):
for sln, file_names in enumerate(files):
file_list.append(file_names)
check_var_list.append(tk.IntVar(value=1))
ch = tk.Checkbutton(root, text=file_names, variable=check_var_list[sln])
ch.pack()
t = tk.StringVar()
label = tk.Label(root, text='Enter file path here: ')
label.pack(padx=23, pady=23)
entry = tk.Entry(root, textvariable=t)
entry.pack()
root.bind('<Return>', show_os)
root.configure(bg='#856ff8')
root.mainloop()
Код должен был выполнять следующие шаги:
- Спросите путь к каталогу файлов
- Показывать все файлы в этом каталоге с расширением, при этом все элементы отмечены по умолчанию
- Откройте и распечатайте все файлы, проверенные на предыдущем шаге
Все это отлично работает, когда у меня есть .txt
.docx
документ или, но когда есть каталог с файлами PDF, этот код открывает первый PDF-файл, а затем выдает следующую ошибку
pywintypes.error: (31, 'ShellExecute', 'A device attached to the system is not functioning.')
Я не могу это исправить, и, вероятно, это связано с тем, что каждый из моих файлов PDF открывается с помощью веб-браузера.
Я на Python 3.8.
Пожалуйста, помогите!