如何启动';不保存';命令与Python中的os.system(';taskkill';)一起使用
我正在处理的项目将创建一个.CSV文件,供用户在需要时查看 如果我的脚本试图在用户在excel中打开.CSV文件时打开该文件,我的脚本将启动如何启动';不保存';命令与Python中的os.system(';taskkill';)一起使用,python,excel,prompt,taskkill,Python,Excel,Prompt,Taskkill,我正在处理的项目将创建一个.CSV文件,供用户在需要时查看 如果我的脚本试图在用户在excel中打开.CSV文件时打开该文件,我的脚本将启动os.system(“taskkill/im excel.EXE”)。 这将关闭Excel程序,以便我的脚本可以写入文件,因为日志记录比打开的文件更重要 我的问题和我需要帮助的地方是: 如果用户在打开excel文件时更改了该文件中的任何内容,则在发送taskkill命令时,excel会提示“是否保存?”。 因此,我的脚本不断地启动taskill命令,直到Ex
os.system(“taskkill/im excel.EXE”)
。
这将关闭Excel程序,以便我的脚本可以写入文件,因为日志记录比打开的文件更重要
我的问题和我需要帮助的地方是:
如果用户在打开excel文件时更改了该文件中的任何内容,则在发送taskkill
命令时,excel会提示“是否保存?”。
因此,我的脚本不断地启动taskill
命令,直到Excel或我的脚本崩溃
问题:
1.当出现此提示时,如何让脚本知道
2.如果出现此提示,如何使用python脚本告诉Excel“否不保存”
这就是我所指的功能:
def unlockDoor(x, y):
userDictionary = shelve.open(UserDict)
print('Welcome,',userDictionary[x])
print('Door Unlocked')
while True:
try:
with open(EntryLog, "a") as log:
log.write("{0},{1},{2},{3}\n".format(time.strftime("%Y-%m-%d %H:%M:%S"), x, userDictionary[x],y))
userDictionary.close()
break
except:
os.system("taskkill /im EXCEL.EXE")
我相信我已经弄明白了。 将/F添加到命令中,如下所示:
os.system(“taskkill/F/im EXCEL.EXE”)
:似乎会关闭应用程序,而不管它是否已被修改
如果有人知道这个/F是什么意思,请告诉我。你真的做得不对 首先,如前所述,您可以使用
/f
标志强制终止进程。这将防止它弹出任何“保存”或“确定吗?”对话框或其他任何对话框,然后杀死它
但实际上,您不应该使用taskkill
(尤其不应该通过os.system
而不是subprocess
)而不仅仅是在Python中进行。在某些情况下,使用外部工具是有意义的,例如,如果您是一个使用taskkill
但对os
模块或第三方psutil
模块一无所知的向导。但这里的情况显然不是这样,否则您可能知道/f
,或者至少知道如何搜索它
同时,如果希望与ExcelGUI交互,则需要使用GUI自动化库(如)
或者,更好的是,通过COM使用Excel实现自动化
pywin32
附带了很好的文档,包括用于驱动Excel的示例。是的,我对这整件事非常陌生(上周开始学习python)。感谢您提供的资源建议。我会调查这些。