I know this question has been asked here but the solution does not work for me. I am using python 3.4.
I have the following formatting in my script :
print ( "\t {0:20} {1:<11} {2:<25} {3:11} {4:11} {5:>32}".format( files.name.split('/')[-1], sizeof_fmt(files.size),
str( formatted_timestamp ), files.owner,
files.version_id, files.etag ))
This works in python 2.7.x. But in 3.4 I get the error:
File "test.py", line 3, in file_print
versionid, etag ))
TypeError: non-empty format string passed to object.__format__
I tried this:
print ( "\t {0:20} {1:<11} {2:<25} {3:11} {!s4:11s} {!s5:>32s}".format( files.name.split('/')[-1], sizeof_fmt(files.size),
str( formatted_timestamp ), files.owner,
files.version_id, files.etag ))
But I still get the same error. I even converted the versionid and etag to strings and end up getting the same error. Can someone explain this to me?
Etag look like this 9893532233caff98cd083a116b013c0b, versionid is None
formatcall until you don't get the error anymore. Developing an MCVE is the first step towards a solution.NameError: name 'files' is not defined, rather thanTypeError. Without providing code that we can copy-paste-run, it gives the impression that you're not meeting us half way.{!s4:11s}isn't valid, only{4!s:11s}.