Not enough arguments for format string
Pierre Barbier de Reuille
pierre_dot_barbier at _nospam_cirad.fr
Mon Nov 14 12:20:58 EST 2005
Kevin Walzer a écrit :
> I'm getting an error in a Python script I'm writing: "not enough
> arguments for format string." The error comes at the end of the
> os.system command, referenced below. Any ideas?
>
> ---
>
> import EasyDialogs
> import os
> import sys
>
>
> password = EasyDialogs.AskPassword("To launch Ethereal, please enter
> your password:")
> binpath = os.path.join(os.path.dirname(sys.argv[0]),
> '/opt/local/bin/ethereal')
>
> os.system('open -a X11.app; cd ~/; printenv; DISPLAY=:0.0; export
> DISPLAY; echo %s | sudo -S %s; sudo -k' %password %binpath)
>
> TypeError: not enough arguments for format string
>
>
Well, just try :
os.system('open -a X11.app; cd ~/; printenv; DISPLAY=:0.0; export
DISPLAY; echo %s | sudo -S %s; sudo -k' % (password, binpath) )
The reason is, you have 2 "%s" in yor string, thus after the "%"
operator, you need a 2-element tuple ! If you have either more or less
element, you'll get a TypeError ! In your code above you put a single
element ...
Pierre
More information about the Python-list
mailing list