gpt4 book ai didi

python - 使用 os.system 异步,独立于 python 进程?

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:57 25 4
gpt4 key购买 nike

当使用os.system打开一个文件时,eg:os.system(r'C:/foo.txt'),当前Python进程,的当然,等到系统调用返回。 (即:文本编辑器关闭)。
我是否必须使用线程来使其异步?

想象一下下面的情况:

我正在使用 Python 为 Windows 编写文件管理器。用户单击文件。现在使用 os.system(the_path_to_the_file_clicked) 将使用注册表中设置的默认程序打开文件。
使用 Thread 使系统调用异步会工作得很好,但是当用户关闭 File-manager 时怎么办?在 Thread 退出之前,Python 进程会保持事件状态,但这不是不必要的吗?另一方面,终止 Python 进程也会终止线程,程序将关闭。

有没有办法使用系统调用来打开一个独立于 Python 进程的新进程?

最佳答案

如果你想用默认程序在windows上打开一个文件,有一个特殊的函数可以异步打开它并且独立于你自己的程序:os.startfile .这应该可以满足您的要求。

更一般地,对于异步运行程序,os.system 做不到。然而,the subprocess module能。 subprocess 模块几乎完成了 os.system 所做的一切,还有更多。但是,与 os.system 一样,当您使用 subprocess.Popen 时,程序不会独立于您的进程打开——当您的进程终止时,子进程也会终止。

关于python - 使用 os.system 异步,独立于 python 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com