Moving files to an output directory, with instructions on missing files I have some files such as .\image_1_01.bmp that will be created elsewhere. I am then moving these files to an output directory. If any are missing I inform the user that it's missing and instruct them to check the logs.

Given how similar all the code is, can I make this code shorter?

if not os.path.exists(".\image_1_01.bmp"):
    print('image_1_01.bmp not generated\n' 'for more info check the log file' )
    return 1
else:
    shutil.move(".\image_1_01.bmp", output_directory)

if not os.path.exists(".\image_1_01.raw"):
    print('image_1_01.raw not generated\n' 'for mor info check the log file' )
    return 1
else:
    shutil.move(".\image_1_01.raw", output_directory)

if not os.path.exists(".\image_1_01_hist.csv"):
    print('image_1_01_hist.csv not generated\n' 'for mor info check the log file' )
    return 1
else:
    shutil.move(".\image_1_01_hist.csv", output_directory)

if not os.path.exists(".\image_1_02.bmp"):
    print('image_1_02.bmp not generated\n' 'for more info check the log file' )
    return 1
else:
    shutil.move(".\image_1_02.bmp", output_directory)

if not os.path.exists(".\image_1_02.raw"):
    print('image_1_02.raw not generated\n' 'for mor info check the log file' )
    return 1
else:
    shutil.move(".\image_1_02.raw", output_directory)

if not os.path.exists(".\image_1_02_hist.csv"):
    print('image_1_02_hist.csv not generated\n' 'for mor info check the log file' )
    return 1
else:
    shutil.move(".\image_1_02_hist.csv", output_directory)

if not os.path.exists(".\scan_stats.csv"):
    print('scan_stats.csv not generated\n' 'for mor info check the log file' )
    return 1
else:
    shutil.move(".\scan_stats.csv", output_directory)


if retcode != 0:
    sys.exit(1)
else:
    print("Test case is not suitable for your configuration")
    sys.exit(2)

if __name__ == '__main__':
    exit( generic() )`
You are right in that most of your code is very similar, except for the file that you are checking. Since only a small part of the code changes, and the same actions are made at every step, this asks for a loop that iterates over the different files that you want to check:

paths_to_check = [".\image_1_01.bmp", ".\image_1_01.raw", ".\image_1_01_hist.csv", ".\image_1_02.bmp", ".\image_1_02.raw", ".\image_1_02_hist.csv", ".\scan_stats.csv"]

for p in paths_to_check:
    if not os.path.exists(p):
        print(p + 'not generated\n' 'for mor info check the log file' )
        return 1
    else:
        shutil.move(p, output_directory)