проверить, есть ли файл открыт в Python

В своем приложении я пишу в файл Excel. После записи пользователь может просмотреть файл, открыв его. Но если пользователь забывает закрыть файл перед дальнейшей записью, появляется предупреждающее сообщение должен появиться. Так что мне нужен способ проверить, что этот файл открыт перед процессом записи. Не могли бы вы предоставить мне какой-нибудь код Python для выполнения этой задачи?

53
задан nbro 30 September 2019 в 06:45
поделиться

1 ответ

Используя

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 это поможет

0
ответ дан 7 November 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: