Как я могу закрыть подпроцесс с определенным заголовком или именем окна (Excel с несколькими открытыми файлами)? - PullRequest
0 голосов
/ 24 марта 2019

Я пишу скрипт, в котором не могу закрыть один из файлов Excel, открытых в Windows.В Microsoft Excel есть много открытых файлов, но я не открыл их как f.open () в python.Перед завершением сценария он должен записать в тот же файл Excel, и если файл открыт, ошибка и сценарий прерываются.

Можно ли закрыть одно из нескольких окон MS-Excel с определенным заголовком, например, file1, file2, file3 are?открыть в Excel, и я только хочу закрыть file2.xlsx

import os
file3= output.xlsx
os.close(file3)
writer = pd.ExcelWriter('Output.xlsx', engine='xlsxwriter')

1 Ответ

0 голосов
/ 24 марта 2019

Я не уверен, что есть способ сделать это точно с заголовками окон, я думаю, что лучше использовать системную информацию о том, какие файлы использует каждый процесс

from psutil import Process
from os import kill
from signal import SIGQUIT
def close_one_excel(filename, subprocesses):
    """ Kills the process from `subprocesses` array,
    that uses the `filename` file """
    for i in subprocesses:
        p = Process(i.pid)
        if filename in p.open_files():
            kill(p.pid, SIGQUIT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...