2012-05-07 3 views
8

내가 사용자로부터 파일을 얻을 수 argparse를 사용파이썬에서 argparse 파일의 디렉토리를 얻는 방법은 무엇입니까?

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

가 그럼 난이 파일이있는 디렉토리를 알고 싶어을, 무언가 같이 :

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

그러나 물론 args.inputfile이 같은 file 개체는 작동하지 않습니다. 그것을하는 방법?

+0

단순히 인수를 문자열로 가져온 다음 나중에 열 수 있습니다. –

+0

@DavidRobinson 그렇습니다. 쉬운 방법입니다 만, 'argparse'가 유용한'type = file'을 제공하기 때문에 더 똑똑하지 않아도됩니다. –

+1

나는 동의 할 만하다. –

답변

12

.name 특성에서 파일 이름을 가져온 후 os.path.abspath으로 전달할 수 있습니다. 예 :

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

니스 쉽고, 고마워! –

관련 문제