2011-10-19 15 views
7

Estoy buscando una biblioteca que capitalice correctamente una cadena dada suponiendo que es un título. Sé que hay string.title(), pero capitaliza cada trabajo, no solo el que debe estar en mayúscula. Alguien sabe alguna biblioteca?Capitalización apropiada para títulos en Python

Ejemplos de palabras que no deben escribir en mayúsculas en los títulos:

  • Proposiciones (en, desde, etc.)
  • los artículos (un, una, el) van
  • de
+5

¿Cómo se debe capitalizar "conducir una casa furgoneta"? –

+0

"Driving a Van Home" – Raz

Respuesta

14

El término para Google es "titlecase". El first hitthe titlecase package es:

$ pip install titlecase 
... 
$ python 
... 
>>> from titlecase import titlecase 
>>> titlecase('the spam and eggs') 
'The Spam and Eggs' 
0

Si desea capitolise una cadena pero sólo capitolise ciertas palabras, tendrá que especificar en alguna lista de lo que las palabras que no desea capitolised y luego hacer algo similar a:

excluded_words = ["words","you","want","excluded"] 

titled = [word.capitalize() if word not in excluded_words else word 
      for word in title.split(" ")] 

Esto es solo si tiene algún estándar extraño (o no implementado) que desee utilizar. Si puede encontrar un paquete que lo haga y cumpla con los estándares que desea, utilícelo en su lugar.

+1

utiliza un conjunto en su lugar: 'excluded_words = {" words "," you "," want "," excluded "}'. Establece hashes de uso, que son muy eficientes. – sleblanc

Cuestiones relacionadas