Python- Adding a specified width to strings

笑着哭i 提交于 2019-12-01 21:29:08

问题


I want to write a string to a file but I want to have a specified length, for example, in the text file, I want to write "Atom", I want it to have a specified length from column 1 - 6, and the next phrase/word, from column 7-11, next from 13-16, and etc... I would want to write to a text file say, random_text.txt, please help.

Thanks!

Basically, why I need it:

Column 1-6 Record Name
Column 7-11 Serial Number
Column 13-16 ATOM name/Type
Column 17 Alternate Location Indicator
Column 18-20 Residue Name
Column 22 Chainidentifier 
Column 23-26 Residue sequence number
Column 27 Code for insertion fo residues
Column 31-38 X-value
Column 39-46 Y-value
Column 47-54 Z-Value
Column 55-60 Occupency
Column 61-66 Temperature (Default 0.0)
Column 73-76 Segment identifier
Column 77-78 Element Symbol
Column 79-80 Charge on atom

回答1:


In Python2.6 or later, you could use the str.format method:

with open('random_text.txt', 'w') as f:
    f.write('{0:6}{1:6}{2:4}'.format('Atom','word','next'))

yields a file random_text.txt with contents

Atom  word  next

The number following the colon indicate the width. For example, {0:6} formats the 0-th argument, 'Atom', into a string with a width of 6. The string could be "right-justified" by using the format {0:>6}, and there are other options as well.




回答2:


string = "atom"
width = 6
field = "{0:<{1}}".format(string[:width], width)

This will truncate string to width if necessary, since you can't actually specify the max width in format string, just the minimum width that the field will be padded to.




回答3:


Use str.format, define field widths (:<width>) and expand your data (*<list>).

>>> columns = ['aaaa', 'bbbbbb', 'ccc']
>>> print '{:4}{:6}{:3}'.format(*columns)

Additionally, you can abuse the precision .8 to trim a string field. The first 8 sets the minimum field width.

>>> print '{:8.8}'.format('Too long for this field')
Too long


来源:https://stackoverflow.com/questions/8459364/python-adding-a-specified-width-to-strings

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!