2012-05-07 38 views
8

utilizo argparse para obtener un archivo por parte del usuario:¿Cómo obtener el directorio de un archivo argparse en Python?

import argparse, os 
parser = argparse.ArgumentParser() 
parser.add_argument('file', type=file) 
args = parser.parse_args() 

Entonces quiero saber el directorio en este archivo es, algo así como:

print(os.path.abspath(os.path.dirname(args.inputfile))) 

Pero, por supuesto, como args.inputfile es una file objeto, esto no funciona. ¿Cómo hacerlo?

+0

Puede simplemente obtener el argumento como una cadena, luego abrirlo después. –

+0

@DavidRobinson Sí, esa es la manera fácil, pero quiero estar seguro de que no hay nada más inteligente que hacer, ya que 'argparse' proporciona el útil' tipo = archivo'. –

+1

Estoy de acuerdo, vale la pena preguntar. –

Respuesta

12

Puede obtener el nombre del archivo del atributo .name, y luego pasarlo al os.path.abspath. Por ejemplo:

args = parser.parse_args() 
path = os.path.abspath(args.file.name) 
+0

¡Agradable y fácil, gracias! –

Cuestiones relacionadas