python - 如何关闭具有特定标题或窗口名称的子进程(具有多个打开文件的 Excel)?
问题描述
我正在编写一个脚本,但无法关闭在 Windows 中打开的一个 excel 文件。Microsoft Excel 中有许多打开的文件,但我没有在 python 中将它们作为 f.open() 打开。在脚本完成之前,它必须写入相同的 excel 文件,如果文件打开错误并且脚本中断。
我可以关闭具有特定标题(如 file1、file2、file3)的多个 MS-Excel 窗口之一在 excel 中打开,我只想关闭 file2.xlsx
import os
file3= output.xlsx
os.close(file3)
writer = pd.ExcelWriter('Output.xlsx', engine='xlsxwriter')
解决方案
我不确定有没有办法完全使用窗口标题,我认为更好的方法是使用有关每个进程使用哪些文件的系统信息
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)
推荐阅读
- ios - 从外部 iOS 应用程序卸载并退出 Unity
- python-3.x - 在 django 查询中进行转换
- oracle - 调用 Oracle 存储过程的参数数量或类型错误
- python - print 和 pd.DataFrame 之间的值不同
- reactjs - 使用可滚动变体并调整浏览器窗口大小时,材质 UI 选项卡将消失
- android - 在撰写中更改 SelectionContainer 中选择文本的颜色
- gdb - 如何在缓冲区溢出中查找地址并查看堆栈?
- r - R中是否有用于受限范围相关性的包/命令?
- ssl - 使用 ca cert(.crt 或 .pem)配置 Kafka 客户端
- c# - 为 MAUI Visual Studio 2022 安装 Android 工作负载时出现问题