Debajo de windows, el hogar de los usuarios es %HOMEPATH%
que es el equivalente de Linux y Mac ~
. Debajo de esto, hay una carpeta Desktop
como en Mac. Python convierte automáticamente ~
en% HOMEPATH% en Windows, por lo que su comando de Mac funcionará de la caja en Mac y Windows.
En Linux, es un poco más complicado. Primero, comprenda que la caja de Linux en la que se está ejecutando no puede tener un escritorio, por lo que no hay una carpeta de escritorio del usuario. Si tiene administrador de ventanas, puede o no seguir el paradigma ~\Desktop
. The wikipedia entry on window managers entra en más detalles, incluidas las comparaciones entre varios de los administradores de ventanas X más populares en algunos de los enlaces secundarios.
Su mejor opción sería dar un paso atrás, y pregúntese ¿por qué quiero/necesito la carpeta de escritorio de los usuarios? ¿Es para crear un acceso directo durante la instalación? Probablemente esté mejor con una utilidad de escritor de instalación, como nsis, manejando esos detalles. Si se trata de almacenamiento de archivos, incluso temporal, puede reconsiderar su diseño. ¿O está buscando algo, en cuyo caso una búsqueda de sistema de archivos puede ser el camino a seguir, en lugar de una verificación de carpeta única frágil.
Como la mayoría de las cosas, todo depende de lo que quiera lograr.
Como EOL señaló en su comentario, Windows es un poco más complicado de lo que parece. La carpeta His link to a more complete article on the Windows Desktop tiene más detalles sobre la localización de la carpeta del escritorio. Esto es muy importante para que los constructores de aplicaciones internacionales lo tengan en cuenta, ya sea utilizando la localización automática integrada en su conjunto de herramientas o evitando cosas que lo usan.
Son sistemas operativos diferentes. La respuesta trivial es casi universalmente "No", no existe un estándar que se aplique a ambas familias de sistemas operativos. Windows no es estándar.¿Estás pidiendo una forma de minimizar las diferencias? Por favor, publique el código que está utilizando para que podamos, tal vez, simplificarlo. –
permítanos [continuar este debate en el chat] (http://chat.stackoverflow.com/rooms/3413/discussion-between-eol-and-s-lott) – EOL