Un script de Python que genera un archivo de contexto unificado (context.txt) a partir de los archivos de código y documentos en tu proyecto. Perfecto para proporcionar contexto a herramientas de IA, documentación o análisis de proyectos.
- Análisis completo de directorios: Recorre recursivamente todos los subdirectorios
- Selección interactiva: Elige qué extensiones de archivo incluir mediante un menú interactivo
- Múltiples formatos soportados:
- Código fuente: Python, JavaScript, Java, C++, HTML, CSS, y muchos más
- Documentos de Office: DOCX, XLSX, PPTX, CSV
- Archivos de configuración: YAML, JSON, XML, etc.
- Detección automática de encoding: Lee archivos con diferentes codificaciones sin problemas
- Sin dependencias externas: Usa solo módulos estándar de Python
- Filtrado inteligente: Omite automáticamente carpetas ocultas y archivos binarios
El script reconoce más de 70 extensiones de archivo, incluyendo:
- Lenguajes de programación: Python, JavaScript, Java, C/C++, Rust, Go, Ruby, PHP, etc.
- Lenguajes web: HTML, CSS, TypeScript, JSX, TSX
- Lenguajes funcionales: Haskell, Elixir, Clojure, F#, OCaml
- Scripting: Bash, PowerShell, Perl, Lua, Ruby
- Documentación: Markdown, Texto, YAML
- Office: DOCX, XLSX, PPTX, CSV
Ver lista completa de extensiones soportadas
-
Clona el repositorio:
git clone https://github.com/tu-usuario/context-code-generator.git cd context-code-generator -
Asegúrate de tener Python 3.6+:
python --version
No se requieren dependencias externas. El script usa solo módulos estándar de Python.
-
Navega a tu proyecto:
cd /ruta/a/tu/proyecto -
Ejecuta el script:
python /ruta/al/script/context.py
-
Sigue el menú interactivo:
- Verás todas las extensiones disponibles en tu proyecto
- Selecciona usando números separados por comas
- Opciones especiales:
all,none,common,office
-
Encuentra el resultado:
- El archivo
context.txtse generará en el directorio actual - Contiene todo el código y contenido seleccionado en formato estructurado
- El archivo
- Números individuales:
1,3,5- Selecciona extensiones específicas all: Incluye todas las extensiones reconocidasnone: No incluye ninguna extensión (sale del programa)common: Selecciona extensiones comunes de programaciónoffice: Selecciona solo documentos de Office (DOCX, XLSX, PPTX, CSV)
$ python context.py
Generador de Contexto de Código
========================================
Este script analizará el directorio actual y generará un archivo 'context.txt'
con el contenido de los archivos que selecciones.
Extensiones disponibles en el directorio (solo las reconocidas):
============================================================
1. .py -> Python
2. .js -> JavaScript
3. .html -> HTML
4. .css -> CSS
5. .json -> JSON
6. .md -> Markdown
7. .docx -> Word Document
Opciones:
- Ingresa los números de las extensiones separados por comas (ej: 1,3,5)
- 'all' para seleccionar todas las extensiones
- 'none' para no seleccionar ninguna
- 'common' para seleccionar extensiones comunes de código
- 'office' para seleccionar extensiones de Office (docx, xlsx, pptx, csv)
Tu selección: commonEl archivo context.txt generado tiene el siguiente formato:
CONTEXTO DEL PROYECTO
==================================================
Extensiones incluidas: .py, .js, .html
./src/main.py
`Python
# Contenido del archivo main.py
`
./src/utils.js
`JavaScript
// Contenido del archivo utils.js
`
./documentacion.docx
`Word Document
Texto extraído del documento Word...
`
Edita el diccionario language_map en el script para agregar nuevas extensiones:
language_map = {
'.nuevo': 'Nuevo Lenguaje',
# ... extensiones existentes
}El script excluye automáticamente:
- Carpetas que comienzan con
.(ocultas) __pycache__node_modules(si existe)
Para agregar más exclusiones, modifica la línea:
dirs[:] = [d for d in dirs if not d.startswith('.') and d != '__pycache__']- Archivos binarios: Se detectan y omiten automáticamente
- Archivos de Office complejos: Solo se extrae texto básico (sin formato, imágenes, etc.)
- Encoding muy raro: Puede haber problemas con codificaciones poco comunes
- Archivos muy grandes: Pueden ser lentos de procesar
- Verifica que el directorio contenga archivos con extensiones conocidas
- Revisa que no estés en un directorio vacío o solo con archivos binarios
- El script intenta automáticamente múltiples codificaciones
- Si falla, el contenido se marca como no legible
- Verifica que hayas seleccionado extensiones existentes en el proyecto
- Comprueba los permisos de escritura en el directorio
Las contribuciones son bienvenidas. Puedes:
- Reportar bugs o sugerir nuevas características
- Agregar soporte para más extensiones de archivo
- Mejorar la detección de encoding
- Optimizar el rendimiento para proyectos grandes
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
¿Te resulta útil este script? ¡Dale una ⭐ al repositorio!