2012-05-07 43 views
8

tôi sử dụng argparse để có được một tập tin từ người sử dụng:Cách lấy thư mục của tệp argparse bằng Python?

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

Sau đó, tôi muốn biết thư mục tập tin này là một cái gì đó như:

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

Nhưng tất nhiên, như args.inputfile là một file đối tượng, điều này không hoạt động. Làm thế nào để làm nó?

+0

Bạn chỉ có thể nhận đối số dưới dạng chuỗi, sau đó mở đối số sau đó. –

+0

@DavidRobinson Vâng, đó là cách dễ dàng, nhưng tôi muốn chắc chắn không có gì thông minh hơn để làm, như 'argparse' cung cấp' loại = file' hữu ích. –

+1

Tôi đồng ý, đáng yêu cầu. –

Trả lời

12

Bạn có thể lấy tên tệp từ thuộc tính .name và sau đó chuyển đến os.path.abspath. Ví dụ:

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

Rất dễ và cảm ơn! –

Các vấn đề liên quan