J'ai une base de données:
p>
Comme vous pouvez le voir dans le Colonne 'Desc', le texte est de longueur variable (ce qui signifie que deux chaînes que je tire de cette base de données ne sera de la même longueur). Je vais éventuellement ajouter de nombreuses entrées à cette base de données, mais c'est ce que je vais tester avec et commençant par le moment. P>
En ce moment, j'ai le code Python suivant pour saisir ces blocs de chaîne et Affichez-les: P>
cmd = input(Enter command:) sql = "SELECT cmd,`desc` FROM table WHERE cmd = '"+ cmd +"'" cursor.execute(sql) result = cursor.fetchall() for row in result: print("Command: "+ row[0] +":\n") print("Description: "+ row[1][:40] +"\n") if (len(row[1]) > 40): print(row[1][40:85]) if (len(row[1]) > 85): print(row[1][85:130]) if (len(row[1]) > 130): print(row[1][130:165]) if (len(row[1]) > 165): print(row[1][165:])
3 Réponses :
Split sur des espaces pour séparer les mots, puis rejoindre 8 à la fois avec un espace comme séparateur.
content = "This is some sentence that has more than eight words" content = content.split(" ") print content ['This', 'is', 'some', 'sentence', 'that', 'has', 'more', 'than', 'eight', 'words'] print(" ".join(content[0:8])) This is some sentence that has more than
Merci! C'était ce que je cherchais pour l'instant.
Coupez par des mots au lieu de caractères utilisant python TextWrap module:
>>> import textwrap >>> text = 'asdd sdfdf asdsg asfgfhj' >>> s = textwrap.wrap(text, width=10) # <- example 10 characters >>> s ['asdd sdfdf', 'asdsg', 'asfgfhj'] >>> print '\n'.join(s) asdd sdfdf asdsg asfgfhj >>>
Consultez le Module TextWrap . Vous pouvez faire beaucoup de configuration de TextWrapper. P> p>
Cela existe ?! Les bibliothèques standard de Python n'arrêtent jamais de me surprendre. +1
Je travaillais sur un sale tour pour faire le travail. Je n'avais aucune idée de quelque chose comme ceci était disponible. Je vais certainement jeter un oeil une fois que j'ai la chance. Merci!
C'est rapide et ça fait le travail. C'est tout ce que je cherchais :)
Utilisez la substitution des paramètres au lieu de construire manuellement SQL String E.g.,
cursor.execute ('Sélectionnez * à partir de commandes où cmd =?', (cmd,)) code>. Vous n'avez pas besoin d'appeler
cursor.fetchall () code> Vous pouvez itérer directement il:
pour la ligne dans le curseur: ... code>