p = subprocess.Popen(['cp','-r', "xyz", "abc"])
entspricht dem Shell-Befehl
„cp -r xyz abc“
Leerzeichen und Shell-Metazeichen ($, > usw.) müssen nicht „escaped“ werden.
Will man das Verhalten von os.system emulieren, setzt man shell=True und gibt einen String statt einer Liste an:
p=subprocess.Popen("cp -r xyz abc", shell=True)