2011-02-02 13 views
8

He descargado un archivo python xxxxxx.py que se supone que se ejecuta en la línea de comando mecanografiando: python xxxxxx.py filename1 filename2 y que debería tomar estos dos archivos como argumentos.Pasando el argumento de la línea de comando al programa Python usando IDLE?

Me preguntaba si hay una forma en que puedo usar IDLE para pasar estos argumentos. ¿Hay alguna otra manera además de establecer sys.argv?

Gracias

+5

no entiendo por qué la gente insiste en que pensar ocioso es algo útil. –

+0

Por favor, puede darme sugerencias sobre un IDE que crea que es útil para Windows. Agradecería que –

+0

No pase argumentos en IDLE en tiempo de ejecución. Es fácil simplemente escribir su comando en la línea de comando. ¿Qué le impide vincular 'python xxxxxx.py filename1 filename2' en la línea de comando? ¿O copiar y pegar en la línea de comando? ¿O usando la flecha hacia arriba para escribirla nuevamente en la línea de comando? –

Respuesta

4

Puede hacerlo desde la línea de comandos con:

idle.py -r scriptname.py poner argumentos aquí

Usted puede tratar de una IDE diferente como ActivePython

O puede parchear IDLE :

http://bugs.python.org/issue5680

+0

si estoy en Windows. mi camino ahora es C: \ Python26 ... etc \ idlelib para que pueda funcionar inactivo. Pero el guión está en otro lugar y no puede encontrarlo, ¿qué debo hacer? –

+0

¡No importa! Acabo de agregar el C: \ Python26 \ Lib \ idlelib a la ruta de acceso en la configuración avanzada del sistema –

+1

Simplemente modifique sys.argv dentro de su código. Por ejemplo 'sys.argv = ['scriptname.py', 'arg1', 'arg2', 'arg3']' – SomeGuyOnAComputer

6

Depende del contenido de su archivo de Python. Si está bien escrito, como:

#! /usr/bin/env python 

def process(files): 
    for file in files: 
     # ... 

if __name__ == '__main__' 
    # some error checking on sys.argv 
    process(sys.argv[1:]) 
    sys.exit(0) 

Posteriormente, se podría simplemente importar el archivo de pitón y ejecutarlo como:

import name_of_file 

# ... 
     name_of_file.process([file1, file2, file3]) 
# ... 

Por lo tanto, lo que realmente depende de lo que está escrito. Si no está bien escrito pero puede editarlo, lo refactorizaría para que se pueda usar como biblioteca; de lo contrario, usaría el módulo de subproceso para invocar el programa.

+1

Solo quiero pasar argumentos sobre el tiempo de ejecución cuando ejecuto el script de python. ¿Hay una manera de hacer eso? –

Cuestiones relacionadas