platform: use subprocess.Popen() instead of os.popen() in _syscmd_file()

 * Popen() avoids ugly shell escape: target.replace('"', '\\"')
 * Use proc.communicate() instead of f.stdout.read()
 * Get output from stdout by splitting with ": " instead of splitting by spaces
   to support filename with spaces
1 file changed