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 -- http://mail.python.org/mailman/listinfo/python-list