How to make argparse accept "-4^2+5.3*abs(-2-1)/2" string argument?

Chris Angelico rosuav at gmail.com
Mon Jan 23 21:12:54 EST 2023


On Tue, 24 Jan 2023 at 13:09, Jach Feng <jfong at ms4.hinet.net> wrote:
>
> Chris Angelico 在 2023年1月24日 星期二清晨5:00:27 [UTC+8] 的信中寫道:
> > On Tue, 24 Jan 2023 at 07:47, Cameron Simpson <c... at cskk.id.au> wrote:
> > >
> > > But for Jach Feng: the "--" is really expected as something the user
> > > does when they invoke your programme, _explicitly_ saying that what
> > > follows from here is not an argument. So the user is expected to type:
> > >
> > > your_script -x -y -- "-4^2+5.3*abs(-2-1)/2"
> > >
> > > where there are -x and -y options, then end of options, then an
> > > argument, which would look like an option if there wasn't the "--"
> > > argument.
> > And if you DON'T expect the user to enter the "--", then why use
> > argparse? You can just check argv directly to get your arguments.
> >
> > This entire thread is a massive "how can I use X to do Y?" problem.
> >
> > ChrisA
> The '--' requirement makes its usage less instinctive, and handling argv directly makes me loss the benefit of using '-h':-)

if "-h" in sys.argv: usage()
else: do_stuff_with(sys.argv[1:])

What is argparse really doing for you?

ChrisA


More information about the Python-list mailing list