Aligner des colonnes dans un fichier texte
Je suis un Python noobie et je suis bloqué sur quelque chose que je sais est simple...
J'ai un fichier texte qui contient la connexion de l'utilisateur des données:
dtrapani HCPD-EPD-3687 Mon 05/13/2013 9:47:01.72
dlibby HCPD-COS-4611 Mon 05/13/2013 9:49:34.55
lmurdoch HCPD-SDDEB-3736 Mon 05/13/2013 9:50:38.48
lpatrick HCPD-WIN7-015 Mon 05/13/2013 9:57:44.57
mlay HCPD-WAR-3744 Mon 05/13/2013 10:00:07.94
eyoung HCPD-NLCC-0645 Mon 05/13/2013 10:03:01.83
Je suis en train d'imprimer les données dans les colonnes alignés:
dtrapani HCPD-EPD-3687 Mon 05/13/2013 9:47:01.72
dlibby HCPD-COS-4611 Mon 05/13/2013 9:49:34.55
lmurdoch HCPD-SDDEB-3736 Mon 05/13/2013 9:50:38.48
lpatrick HCPD-WIN7-015 Mon 05/13/2013 9:57:44.57
mlay HCPD-WAR-3744 Mon 05/13/2013 10:00:07.94
eyoung HCPD-NLCC-0645 Mon 05/13/2013 10:03:01.83
J'ai cherché partout sur ce site et à peu près tué mon "Google de la Machine"! Merci pour toute aide que vous pouvez fournir.
edit: j'ai oublié d'inscrire mon code:
with open(r'C:\path\to\logons.txt', 'r') as f:
for line in f:
data = line.strip()
print(data)
OriginalL'auteur cstafford | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Je pencherais pour la nouvelle(er) d'impression formateur avec celui-ci (en supposant que votre champs sont compatibles). Imprimer/instruction de mise en forme est assez facile à utiliser et peut être trouvé ici. Vos données peut être vu comme une liste, vous pouvez faire un seul appel de format et de fournir le bon module de formatage des données que vous aurez votre sortie. Cela a un peu plus de précision, de contrôle de ljust ou rjust mais a l'inconvénient que vous avez besoin de savoir que vos données sont cohérentes.
OriginalL'auteur Jeff Langemeier
str.ljust(width, [fillchar=" "])
(http://docs.python.org/2/library/stdtypes.html#str.ljust) semble correspondre à ce que vous êtes après.Justifier à gauche de chaque champ lors de l'impression à la longueur maximale + un peu.
Pour le dernier champ pour correspondre à votre exemple, vous aurez envie de droit justifier au lieu d'utiliser rjust.
ljust
en fait?Bonne prise, fixe.
avec open(r'C:\logons.txt', 'r') as f: for ligne in f: données = ligne.strip() print(data.ljust(30, ' ')) me donne le même résultat.
Vous devez diviser les lignes vers le haut dans des champs distincts, et ljust chacun d'eux.
foreach field in line.split(' '): print(field.ljust(30, ' '))
.Comme une note, son dernier champ n'est pas justifié à gauche, donc ça ne ressemble pas c'est tout à fait ce qui est voulu.
OriginalL'auteur Sysyphus
OriginalL'auteur Hal Canary