Ошибка нераспознанных аргументов при запуске кода Python - PullRequest
0 голосов
/ 09 ноября 2018
    import os
import subprocess
import re
import argparse

apps_dir = None
inputs_dir = None
outputs_dir = None

parser = argparse.ArgumentParser(description='Runs Arthur routing test cases.')
parser.add_argument('test_dir', type=str, help='Path to root folder where bin and test_cases folders should exist.')

def run_test(app, test):
    app_exe = os.path.join(apps_dir, app)
    app_ver = re.search(r'ArthurCLI-(d/).exe', app).group(1)
    inputs = os.path.join(inputs_dir, test, app_ver)
    outputs = os.path.join(outputs_dir, test, app_ver)

    if not os.path.exists(inputs):
        return

    if not os.path.exists(outputs):
        os.makedirs(outputs)

    for i in os.listdir(inputs):
        base_fname = os.path.splitext(i)[0]
        i_fname = os.path.join(inputs, i)
        i_file = open(i_fname)

        o_fname = os.path.join(outputs, '%s.out' % (base_fname))
        o_file = open(o_fname, 'w')

        print('%s < %s > %s\n' % (app_exe, i_fname, o_fname))
        p = subprocess.Popen(app_exe, stdin=i_file, stdout=o_file)
        p.wait(),
        o_file.flush()

        i_file.close()
        o_file.close()

if __name__ == '__main__':
    args = parser.parse_args()

    test_dir = os.path.normpath(args.test_dir)
    apps_dir = os.path.join(test_dir, 'bin')
    inputs_dir = os.path.join(test_dir, 'test_cases')
    outputs_dir = os.path.join(test_dir, 'results')
    if not os.path.exists(outputs_dir):
        os.makedirs(outputs_dir)

    for app in os.listdir(apps_dir):
        for test in os.listdir(inputs_dir):
            run_test(app, test)

    print('[Done]')

, когда я запускаю этот код, он выдает ошибку «Нераспознанная ошибка», поэтому я хотел знать, где передать путь к каталогу для обработки этой ошибки.ему нужен путь для test_dir для запуска этого кода, как мне его обработать.Я думаю, что основная ошибка в основном методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...