检查一个Python脚本是否已经在Windows上运行

什么是最好的/最简单的为什么要检查一个特定的Python脚本是否已经在Windows上运行?

我有一个脚本覆盖文件夹中的所有文件,并将它们复制到另一个文件夹(sorting到电影或电视节目文件夹)。 我想确保当脚本启动时,没有另一个已经运行的进程(同一个脚本),所以我不会遇到两个试图移动相同文件的脚本的问题。

我试图在脚本开始时创build一个文件,并在脚本结束时将其删除,但当脚本崩溃和/或抛出错误时,我遇到了问题。

我知道我可以使用psutil ,但是我会得到进程名称(python.exe),我正在寻找一个为什么区分Python进程是否运行我的脚本或其他程序。

您可以使用psutil.Process().cmdline()来查看进程的完整命令行。

或者,您可以锁定正在处理的文件。 看到这个问题的答案如何在ms-windows上做到这一点。 有锁的东西是你必须小心删除它们,尤其是当发生错误时。

使用lockfile 。 它是跨平台的,使用本机操作系统功能,比任何家庭酿造的锁定文件创建模式更健壮