How do I grab the active texture on a face in python?
This script will print the names of the the textures assigned to the various materials on the selected objects:

import bpy, bmesh

C = bpy.context
for o in C.selected_objects:
        bm = bmesh.new()
        bm.from_mesh( o.data )
        for f in bm.faces:
            mat = o.material_slots[ f.material_index ].material
            if C.scene.render.engine == 'BLENDER_RENDER':
                for textureName in [ ts.texture.name for ts in mat.texture_slots if ts ]:
                    print( "material_index_{mi}.texture_name_{tn}".format( 
                        mi = f.material_index,
                        tn = textureName
                    ) )
            if C.scene.render.engine == 'CYCLES':
                for textureName in [ n.name for n in mat.node_tree.nodes if 'TEX' in n.type ]:
                    print( "material_index_{mi}.texture_name_{tn}".format( 
                        mi = f.material_index,
                        tn = textureName
                    ) )                    
        bm.free


It will print it in the format of "material_index_X.texture_name_Y" (where X is the material index, and Y is the texture name).

You can of course use the texture slot index, rather than the texture name. Or what might be even more intersting, the image path assigned to the image texture you might be using (accessible through texture.image.filepath).