Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查一个文件是否成功执行了Popen?_Python_Python 3.x_Subprocess - Fatal编程技术网

Python 如何检查一个文件是否成功执行了Popen?

Python 如何检查一个文件是否成功执行了Popen?,python,python-3.x,subprocess,Python,Python 3.x,Subprocess,我正在尝试制作一个脚本,用于检测使用Popen运行的可执行文件是否能够成功运行(可能是被防病毒软件阻止或程序本身已损坏)。也许通过检查文件是否为内存?我不太确定在这种情况下检测文件的最佳方法是什么,如果您有更好的建议,那么请毫不犹豫地分享 这是我的代码: for file in glob.glob('*.exe'): try: subprocess.Popen(file) except Exception: print('okay') 我正试图

我正在尝试制作一个脚本,用于检测使用Popen运行的可执行文件是否能够成功运行(可能是被防病毒软件阻止或程序本身已损坏)。也许通过检查文件是否为内存?我不太确定在这种情况下检测文件的最佳方法是什么,如果您有更好的建议,那么请毫不犹豫地分享

这是我的代码:

for file in glob.glob('*.exe'):
    try:
        subprocess.Popen(file)
    except Exception:
        print('okay')


我正试图找出在最后一个“例外”部分中添加什么,以使其按我所希望的方式工作。

基本上,Try将始终在循环中执行,并且只有在出现异常时才会执行。现在我们需要查看输出,我们可以打印异常

except Exception as e:
        print(e)
使用
continue
将允许您执行循环的其余部分。它看起来是这样的:(前面是糟糕的编码实践)


异常用于在发生错误时保持程序运行

for file in glob.glob('*.exe'):
    try:
        subprocess.Popen(file)
    except Exception as e:
        print(file,' did not run properly.')
        print(e)
        continue

这将提醒用户,“*.exe”在保持代码运行时未正确运行。

子进程调用(文件)
如果可执行文件无法启动,将引发异常。它避免了像popen那样在后台启动可执行文件。但它阻止了通话。可能是超时+终止的Popen?这是什么操作系统?这可能会有所不同。提到防病毒软件,我觉得这可能是一个Windows系统,在这个系统中,可执行文件通常不能像子进程一样正常工作?在3.5或更高版本上,您可能应该使用。
打印(例外)
没有意义:这将只打印
。如果要处理实际的异常对象,如打印它,则需要捕获它。您没有在两个位置都修复它,可能还会在打印的文件中包含文件名message@tripleee这是一个好主意,但由于python将在
e
中打印文件名(错误),这是必要的还是我遗漏了一点?完全取决于例外情况。我不指望文件名在
e
@tripleee中可见,我明白了,可能存在一个没有文件名的异常。谢谢你的批改。
for file in glob.glob('*.exe'):
    try:
        subprocess.Popen(file)
    except Exception as e:
        print(file,' did not run properly.')
        print(e)
        continue