Run multiple python codes and Check with answer data
Here is something I would improve:


fix the variable naming - according to PEP8, use lower case and separate words with an underscore - e.g. _grade_file instead of _gradeFile
use argparse  module instead of manually reading from sys.argv - you will get the auto-generated command-line help for free and it is generally more readable, structured and scalable. As a bonus, you may avoid checking the length of the sys.argv and reading the "files" into variables. Something along these lines:

import argparse


def parse_arguments():
    parser = argparse.ArgumentParser()

    parser.add_argument('--source-files', nargs="+", type=str)
    parser.add_argument('--answer-file', type=argparse.FileType('r'))
    parser.add_argument('--grade-file', type=argparse.FileType('w'))

    return parser.parse_args()


Note the use of the special FileType argument type.

And, because of the use of nargs="+", you should change the way you pass python file names - instead of a comma-separated list, use space:

$ python --source-files test01.py test02.py --answer-file answer.dat --grade-file grade.md

use with context manager when opening files
try subprocess.Popen() instead of os.system() - with "popen" you may not need to temporarily write the result to a swap file and read the standard out and error directly
I understand that an underscore at the beginning of a variable name is a convention to mark "private variables", but, if the checker class would not be a part of a public-facing API, it would be okay to remove the underscores to improve on readability