Using Pexpect for communication between multiple programs via I/O
here are a few ways to cleanup the code and make it more readable. This does not really go over functionality too much as I am not super familiar with pexpect or your other program you are trying to interface with. There are probably some optimizations to do the While loop in your program especially around the end where you are changing the player you are looping on but since I am unfamiliar I will leave that alone. 

Without seeing the code or having a better understanding of how the checker/player works, this will be the best I can give for now.


Unused imports aren't a terrible thing, but aren't really a good thing either, best to remove them.
It doesn't seem like any naming convention is really being strictly followed. For example you have Checker = pexpect.spawn("./checker") but then later are doing check = Checker.before.strip(). It is best to follow PEP8 and stick with the snakecase naming convention. So it would be checker = pexpect.spawn("./checker")
Similarly named variables can be confusing. You have Player and player but they are different things. Best to be more specific, player_list and current_player would be better. 
Use list literals instead of creating a list with aribitrary values then indexing in. You could rewrite 

Player = [0,1]
Player[1] = pexpect.spawn("./player1")
Player[0] = pexpect.spawn("./player2")


as 

Player = [pexpect.spawn("./player2"),pexpect.spawn("./player1")]


but that looks a little backwards, so I am gonna change all the indexing so player 1 is in index 0. 

player_list = [pexpect.spawn("./player1"), pexpect.spawn("./player2")]

Use string interpolation

print "endgame   ", check


Would become

print "endgame {}".format(check)


and

print "endgame" + player + "died"


would become

print "endgame {} died".format(player)

Use the natural feel of booleans instead of check != "" where you should have done if check. Python will check for None and "" for you.


Here is my version of the script that should function the same. 

import pexpect

checker = pexpect.spawn("./checker")
player_list = [pexpect.spawn("./player1"), pexpect.spawn("./player2")]

player_list[0].sendline("1")
player_list[0].expect("\n")  # delete input from before
player_list[1].sendline("2")
player_list[1].expect("\n")  # delete input from before

current_player_idx = 0
while True:
    player = player_list[current_player_idx]
    player.expect("\n")
    move = player.before.strip()
    print move

    if not checker.isalive():
        print "endgame checker died"
        break
    checker.sendline(move)
    checker.expect("\n") # delete input from before
    checker.expect("\n")
    check = checker.before.strip()
    if check:
        # Really have no idea what you are trying to do in here, so I am leaving it alone. 
        print "endgame {}".format(check)
        player_list[1].kill(0) 
        player_list[1].kill(0)
        checker.kill(0)
        break

    # If I understand correctly, you are trying to see if the OTHER player is still alive.
    current_player_idx = (current_player_idx + 1) % 2
    if not player_list[current_player_idx].isalive():
        print "endgame {} died".format(current_player_idx)
        player_list[current_player_idx].sendline(move)
        player_list[current_player_idx].expect("\n")  # delete input from before
        break