import sys
import os
import commands
import fnmatch
import re
import subprocess, shlex

mcp_root = os.path.abspath(sys.argv[1])
sys.path.append(os.path.join(mcp_root,"runtime"))
from filehandling.srgshandler import parse_srg

def cmdsplit(args):
    if os.sep == '\\':
        args = args.replace('\\', '\\\\')
    return shlex.split(args)

def main():
    list_file = os.path.abspath(sys.argv[2])
    prelist = os.path.join(mcp_root,"temp","server.md5")
    postlist = os.path.join(mcp_root,"temp","server_reobf.md5")
    cmd = 'diff --unchanged-group-format='' --old-group-format='' --new-group-format=\'%%>\' --changed-group-format=\'%%>\' %s %s' % (prelist, postlist)
    process = subprocess.Popen(cmdsplit(cmd), stdout=subprocess.PIPE, bufsize=-1)
    difflist,_= process.communicate()
    srg_data = parse_srg(os.path.join(mcp_root,"temp","server_rg.srg"))
    classes = {}
    for row in srg_data['CL']:
      classes[row['deobf_name']] = row['obf_name']

    with open(list_file, 'w') as fh:
      for diff in difflist.splitlines():
        diffrow=diff.strip().split()
        clazz=diffrow[0]
        if clazz in classes:
          clazz=classes[clazz]
        if clazz.startswith("net/minecraft/src/"):
          clazz=clazz[len("net/minecraft/src/"):]
        fh.write("minecraft_server/%s\n" %(clazz))

    
if __name__ == '__main__':
    main()

@@ -957,16 +957,36 @@
 name'%5D%0A%0A
+    print(difflist)%0A
     with
@@ -1315,16 +1315,22 @@
 erver/%25s
+.class
 %5Cn%22 %25(cl

Append a .class to the diff file list. Now you should just be able to iterate it and read every file in it directly.