Hi, I have a Python script that's using a format string without positional specifiers. I.e.:
LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S')) I'm running this from within a virtualenv, running under Python 2.7.3. $ python -V Python 2.7.3 $ which python /opt/my_project_venv/bin/python The first line of the script is: #!/usr/bin/env python However, when I run this line, I get the following error: Traceback (most recent call last): File "my_script.py", line 25, in <module> LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S')) ValueError: zero length field name in format The weird thing, when I start a Python REPL and run that line interactively, it works fine: $ python Python 2.7.3 (default, Jan 7 2013, 11:52:52) [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from datetime import datetime >>> LOG_FILENAME = 'my_project_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S')) >>> print(LOG_FILENAME) my_project_2013-05-11_09.29.47.log My understanding was that in Python 2.7/3.1, you could omit the positional specifiers in a format string. Cheers, Victor -- https://mail.python.org/mailman/listinfo/python-list