【问题标题】:How do you print the wrong python file name while serially running multiple python files in a directory?在一个目录中串行运行多个 python 文件时,如何打印错误的 python 文件名?
【发布时间】:2023-11-24 09:27:02
【问题描述】:

我正在使用以下 python 代码使用 try except 方法在目录D:\PYTHON FILES 中运行多个 python 文件。我需要打印运行失败的文件名。请参考下面的代码。鉴于此,有人可以帮助我吗?

请注意:

请在 DOS 提示符下运行,不要使用IPython。将所有 python 文件包括一个损坏的文件放在目录D:\PYTHON FILES

import os, glob
dir='D:\PYTHON_FILES'
os.chdir(dir)

files = glob.glob ('*.py');
for eachfile in files:
    try:
       os.system('python '+eachfile+'\n')
    except:
        print(eachfile + ' missed out')
    finally:
        print('======================')

【问题讨论】:

  • 您阅读过os.system 上的文档吗?它不会抛出错误,它会返回一个非零退出代码。

标签: python operating-system ipython glob


【解决方案1】:

上面提到的代码需要一些更正,例如

import os, glob
dir_path = 'D:\PYTHON_FILES'
os.chdir(dir_path)

file_names = glob.glob('*.py')
for file_name in file_names:
    return_value = os.system('python {}'.format(file_name))
    if return_value != 0:
        print('{} missed out'.format(file_name))
print('=' * 24)

更多pythonic解决方案。返回值非零表示system函数的命令执行存在问题。

【讨论】:

    最近更新 更多