В Python вы не можете просто встраивать произвольные выражения Python в литеральные строки и использовать его вместо значения строки. Вам нужно либо:
sys.stderr.write("Usage: " + sys.argv[0])
или
sys.stderr.write("Usage: %s" % sys.argv[0])
Также вы можете рассмотреть возможность использования следующего синтаксиса print
(для Python ранее 3.x):
print >>sys.stderr, "Usage:", sys.argv[0]
Использование print
, возможно, облегчает чтение кода. Python автоматически добавляет пробел между аргументами в оператор print
, поэтому в приведенном выше примере после двоеточия будет один пробел.
В Python 3.x вы бы использовали функцию print
:
print("Usage:", sys.argv[0], file=sys.stderr)
Наконец, в Python 2.6 и более поздних версиях вы можете использовать .format
:
print >>sys.stderr, "Usage: {0}".format(sys.argv[0])