我想写一个字符串到一个文件,但我想要有一个指定的长度,例如,在文本文件中,我想写"Atom",我想要它有一个指定的长度,从第1-6列,下一个短语/单词,从第7-11列,从13-16,等等...我想写一个文本文件,比如,random_text.txt,请帮帮忙。
谢谢!
基本上,我需要它的原因:
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
发布于 2011-12-11 03:59:22
在Python2.6或更高版本中,您可以使用str.format方法:
with open('random_text.txt', 'w') as f:
f.write('{0:6}{1:6}{2:4}'.format('Atom','word','next'))
生成包含内容的文件random_text.txt
Atom word next
冒号后面的数字表示宽度。例如,{0:6}
将第0个参数'Atom'
格式化为宽度为6的字符串。可以使用格式{0:>6}
对该字符串进行“右对齐”,并且存在other options as well。
发布于 2016-09-06 22:56:00
使用str.format,定义字段宽度(:<width>
)并扩展数据(*<list>
)。
>>> columns = ['aaaa', 'bbbbbb', 'ccc']
>>> print '{:4}{:6}{:3}'.format(*columns)
此外,您可以滥用精度.8
来裁剪字符串字段。前8个设置最小字段宽度。
>>> print '{:8.8}'.format('Too long for this field')
Too long
发布于 2011-12-11 04:02:00
string = "atom"
width = 6
field = "{0:<{1}}".format(string[:width], width)
这将在必要时将string
截断为width
,因为您实际上不能在格式字符串中指定最大宽度,而只能指定字段将填充到的最小宽度。
https://stackoverflow.com/questions/8459364
复制相似问题