2012-06-29 23 views
11

ayuda integrada de Python() Tengo un paquete python que da salida a una considerable texto de ayuda de: help(package)¿Cómo exportar la salida de la función

me gustaría exportar este texto ayuda a un archivo, en el formato en el que se muestra por help(package)

¿Cómo puedo hacer esto?

+3

sabe usted de la [módulo pydoc] (http://docs.python.org/library/pydoc.html)? – DSM

Respuesta

5

esto es un poco hacker (y es probable que haya una solución mejor en algún lugar), pero esto funciona:

import sys 
import pydoc 

def output_help_to_file(filepath, request): 
    f = file(filepath, 'w') 
    sys.stdout = f 
    pydoc.help(request) 
    f.close() 
    sys.stdout = sys.__stdout__ 
    return 

Y entonces ...

>>> output_help_to_file(r'test.txt', 're') 
1

Si lo hace ayuda (help) verás:

Help on _Helper in module site object: 

class _Helper(__builtin__.object) 
| Define the builtin 'help'. 
| This is a wrapper around pydoc.help (with a twist). 

[resto cortó]

Por lo tanto - que debe buscar en el módulo pydoc - que va a ser un método o métodos que el regreso lo hace help(something) como una cadena ...

11

pydoc.render_doc (cosa) para obtener ayuda del texto cosa como una cadena. Otras partes de pydoc como pydoc.text y pydoc.html pueden ayudarlo a escribirlo en un archivo.

El uso del modificador -w en Linux escribirá el resultado en un html en el directorio actual, por ejemplo;

pydoc -w Rpi.GPIO 

pone todo el texto help() que se presenta desde el comando help(Rpi.GPIO) en un Rpi.GPIO.html archivo con un formato agradable, en el directorio actual de la cáscara

+3

Esto es en realidad un poco más fácil que la respuesta seleccionada. –

+1

He encontrado que la respuesta seleccionada no es muy buena, con esta publicación investigué un poco sobre pydocs y edité esta respuesta con mi solución exacta – davidhood2

+0

Bien, gracias. No sabía que había una utilidad de línea de comandos para ir con eso. –

Cuestiones relacionadas