2013-07-05 3 views
0

Я нахожу поведение странным. Мой код работает в Eclipse-Pydev, но не работает в Unix. Может кто-нибудь, пожалуйста, посоветуйте, что я ошибаюсь?Ошибка форматирования строки String - python

Код

#!/usr/bin/python 
    def myDisplay(Message,File): 
     print "Message",Message 
     print len(Message) 
     print "File",File 
     print "**",'{:^48}'.format(Message),"**" 
     print "**",'{:^48}'.format(File),"**" 
myDisplay('Success','ABC.2013-07-05_00:00:00.txt') 

Ошибка в Unix

Message Success 
7 
File ABC.2013-07-05_00:00:00.txt 
** 
Traceback (most recent call last): 
    File "DailyCheck.py", line 8, in <module> 
    myDisplay('Success','ABC.2013-07-05_00:00:00.txt') 
    File "DailyCheck.py", line 6, in myDisplay 
    print "**",'{:^48}'.format(Message),"**" 
ValueError: zero length field name in format 

Выход в Затмения-Pydev

Message Success 
7 
File ABC.2013-07-05_00:00:00.txt 
**      Success      ** 
**   ABC.2013-07-05_00:00:00.txt   ** 

Я смущен, когда я ошибаюсь. Имя поля в формате не является нулевой длиной, почему оно вызывает ошибку?

ответ

0

Вы используете его под 2.6, что требует позиционный аргумент, даже если есть только один.

print "**", '{0:^48}'.format(Message), "**" 
+0

Спасибо. С какой версии он работает как [:^48]? – misguided

+0

Позиционный аргумент для одного параметра может быть опущен с 2.7 по. –

Смежные вопросы