В своем приложении я пишу в файл Excel. После записи пользователь может просмотреть файл, открыв его. Но если пользователь забывает закрыть файл перед дальнейшей записью, появляется предупреждающее сообщение должен появиться. Так что мне нужен способ проверить, что этот файл открыт перед процессом записи. Не могли бы вы предоставить мне какой-нибудь код Python для выполнения этой задачи?
Используя
try:
with open("path", "r") as file:#or just open
может доставить некоторые неприятности, когда файл открыт некоторыми другими процессами (т.е. пользователь открыл его вручную). Можно решить poblem, использующий win32com библиотека. Ниже проверок кода, если какие-либо файлы Excel открыты и если ни один из них не соответствует названию Вашего конкретного, открывает новое.
import win32com.client as win32
xl = win32.gencache.EnsureDispatch('Excel.Application')
my_workbook = "wb_name.xls"
xlPath="my_wb_path//" + my_workbook
if xl.Workbooks.Count > 0:
# if none of opened workbooks matches the name, openes my_workbook
if not any(i.Name == my_workbook for i in xl.Workbooks):
xl.Workbooks.Open(Filename=xlPath)
xl.Visible = True
#no workbooks found, opening
else:
xl.Workbooks.Open(Filename=xlPath)
xl.Visible = True
'xl.Visible = True is not necessary, used just for convenience'
Hope это поможет