Estoy tratando de averiguar la ubicación de las carpetas del sistema con Python 3.1. Por ejemplo, "Mis documentos" = "C: \ Documents and Settings \ User \ Mis documentos", "Archivos de programa" = "C: \ Archivos de programa", etc.Buscar ubicaciones de carpetas del sistema en Python
Respuesta
Encontré a slightly different way of doing it. De esta manera, le dará la ubicación de varias carpetas del sistema y usará palabras reales en lugar de CLSID.
import win32com.client
objShell = win32com.client.Dispatch("WScript.Shell")
allUserDocs = objShell.SpecialFolders("AllUsersDesktop")
print allUserDocs
Otras carpetas disponibles: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Escritorio, Favoritos, Fuentes, MyDocuments, NetHood, PrintHood, recientes, de enviar a, StartMenu, inicio & plantillas
Para obtener la carpeta "Mis documentos", puede usar:
from win32com.shell import shell
df = shell.SHGetDesktopFolder()
pidl = df.ParseDisplayName(0, None,
"::{450d8fba-ad25-11d0-98a8-0800361b1103}")[1]
mydocs = shell.SHGetPathFromIDList(pidl)
print mydocs
De here.
No estoy seguro de cuál es el encantamiento mágico equivalente para los "Archivos de programa", pero eso debería ser suficiente para comenzar.
En Python <3, sí. En Python 3.1: >>> cáscara de importación win32com.shell Rastreo (llamada más reciente pasado): Archivo "
¿Está Win32com instalado? Hay versiones disponibles para Python 3.1 (ver http://sourceforge.net/projects/pywin32/files/) –
[Editar] que funciona muy bien, ¡gracias! –
en Windows 7 que pueda utilizar las siguientes variables de entorno para acceder a las carpetas que necesito:
>>> import os
>>> os.environ['USERPROFILE']
'C:\\Users\\digginc'
>>> os.environ['PROGRAMFILES']
'C:\\Program Files'
Estoy en 7 por el momento y esto funciona bien. ¿Sabes qué tan confiable es esto para el uso multiplataforma? La documentación no es de mucha ayuda. Gracias. –
No lo sé, por desgracia, Sr. Chimp, lo siento. – cdiggins
La llamada a la API de Windows para hacer esto, desde Vista en adelante, es SHGetKnownFolderPath. Existe un contenedor con licencia MIT (que usa ctypes, por lo que no hay dependencias en pywin32) here.
>>> from knownpaths import *
>>> get_path(FOLDERID.ProgramFilesX86)
u'C:\\Program Files (x86)'
- 1. CFileDialog :: Buscar carpetas
- 2. ¿Cómo administrar múltiples ubicaciones de paquetes (carpetas) en R?
- 3. ¿Cómo funciona "Buscar ubicaciones más cercanas"?
- 4. Obtención del estado del sistema en python
- 5. Buscar todas las ocurrencias y ubicaciones de una subcadena
- 6. Sistema de archivos que usa etiquetas en lugar de carpetas?
- 7. Usando Enthought Python en lugar del sistema Python
- 8. Buscar la fecha del lunes con Python
- 9. Buscar un archivo en python
- 10. Ubicaciones del archivo de configuración de IIS7
- 11. Insertar valores en ubicaciones específicas en una lista en Python
- 12. Subir carpetas desde el sistema local a FTP usando la secuencia de comandos de Python
- 13. Ocultar carpetas/Archivo con Python
- 14. Determinar el dispositivo del sistema de archivos en Python
- 15. Obtener información de zona horaria del sistema en Python?
- 16. Buscar la ruta del módulo sin importar en Python
- 17. Configurar nginx con varias ubicaciones con diferentes carpetas raíz en el subdominio
- 18. Buscar "directorio inicial" en Python?
- 19. matplotlib de Python restringir a ubicaciones de tilde enteras
- 20. Buscar la ruta completa del intérprete de Python?
- 21. 'Esperando' animación en el símbolo del sistema (Python)
- 22. ¿Cómo puedo devolver la información del sistema en Python?
- 23. Modelado de un sistema lineal con Python
- 24. En Python: cómo ejecutar el comando del sistema sin salida
- 25. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 26. Python - Mover y sobrescribir archivos y carpetas
- 27. Buscar todas las ubicaciones de subcadena en NSString (no solo primero)
- 28. Sistema de reinicio automático en Python
- 29. ¿Cómo cambiar los nombres de las carpetas en python?
- 30. Trabajando con múltiples archivos de código y carpetas en Python
¿Esta biblioteca está documentada en alguna parte? El sitio de SourceForge es solo un laberinto de publicidades y wikis vacíos. Estoy buscando el directorio de Archivos de programa (o, al menos, así es como solía llamarse en Windows ... afortunadamente no he tenido que lidiar con Windows en mucho tiempo). 'AllUsersPrograms' parece devolver el camino a 'Programas' en el menú Inicio (lo que es interesante, ¡ya que no estoy seguro de haber encontrado siquiera el menú Inicio en Windows Server 2012!) –
@MIchael Scheper Me temo no lo he tocado desde que hice esta pregunta y SourceForge ha ido cuesta abajo desde entonces. Tal vez intente inspeccionar 'objShell' y ver si hay un método para ver todos los nombres' SpecialFolder'. –
Gracias. Lo que he encontrado hasta ahora es http://aspn.activestate.com/ASPN/docs/ActivePython/2.4/pywin32/com.html y, más en general, http://aspn.activestate.com/ASPN/docs/ ActivePython/2.4/pywin32/win32_modules.html, y un comentario que dice 'Pywin32 está tan ligado a las llamadas de win32 que básicamente puedes mirar en MSDN y usar la sintaxis en Python, en su mayor parte'. Todavía no lo he verificado, pero quizás esto ayude a otros SO en el camino correcto. –