Python- Añadiendo un ancho específico a las cadenas

Quiero escribir una cadena en un archivo pero quiero tener una longitud específica, por ejemplo, en el archivo de texto, quiero escribir “Atom”, quiero que tenga una longitud específica de la columna 1 – 6, y siguiente frase / palabra, de la columna 7-11, siguiente de 13-16, y etc … Me gustaría escribir en un archivo de texto, por ejemplo, random_text.txt, por favor ayuda.

¡Gracias!

Básicamente, por qué lo necesito:

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 

En Python2.6 o posterior, puedes usar el método 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 un archivo random_text.txt con contenidos.

 Atom word next 

El número que sigue a los dos puntos indica el ancho. Por ejemplo, {0:6} formatea el argumento 0-th, 'Atom' , en una cadena con un ancho de 6. La cadena podría estar “justificada a la derecha” usando el formato {0:>6} , y allí Son otras opciones también .

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

Esto truncará la string al width si es necesario, ya que en realidad no puede especificar el ancho máximo en la cadena de formato, solo el ancho mínimo al que se rellenará el campo.

Utilice str.format , defina los anchos de campo ( : ) y expanda sus datos ( * ).

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

Además, puede abusar de la precisión .8 para recortar un campo de cadena. Los primeros 8 establecen el ancho de campo mínimo.

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