Tôi muốn sử dụng argparse để phân tích các đối số mà nó biết và sau đó để phần còn lại bị ảnh hưởng. Ví dụ: tôi muốn có thể chạyĐể các đối số bị ảnh hưởng với argparse
performance -o output other_script.py -a opt1 -b opt2
Tùy chọn nào sử dụng tùy chọn -o
và để phần còn lại không bị ảnh hưởng.
Module profiler.py làm một điều tương tự với optparse, nhưng kể từ khi tôi đang sử dụng argparse tôi đang làm:
def parse_arguments():
parser = new_argument_parser('show the performance of the given run script')
parser.add_argument('-o', '--output', default='profiled.prof')
return parser.parse_known_args()
def main():
progname = sys.argv[1]
ns, other_args = parse_arguments()
sys.argv[:] = other_args
nào cũng dường như để làm việc, nhưng những gì sẽ xảy ra nếu cũng other_script.py cũng có một lá cờ -o
?
Có cách nào tốt hơn để giải quyết vấn đề này không?
Ah không biết về điều đó! Nếu không có một điểm đánh dấu, thực tế là rất khó để argparse hiểu được những gì đang xảy ra, tôi đoán, đó không phải là vấn đề dễ dàng .. –
Cần làm rõ rằng bạn cần sử dụng phương thức 'parse_known_args()' (ít nhất là trên python3). 6) – krishonadish