J'essaie d'imprimer des mots dans un fichier texte, voici mon code: shivas_file = open ("words.txt")

0
Shiva3458 13 juil. 2015 à 20:19

5 réponses

Meilleure réponse

Si vous essayez de créer des colonnes séparées par des tabulations

for line in shivas_file:
    print('\t'.join(line.split(",")))
1
CoryKramer 13 juil. 2015 à 17:22

Pour un meilleur alignement, essayez ceci (pour Python 3, veuillez changer l'appel d'impression):

shivas_file = ['abc,    defggggggggg, kjdfksjdlkfjslkf'
, 'abcfdsfsdfskdjf,    gggg, kjdfksjdlkfjslkf'
, 'abc,    defggggg, kjdfksjdlkfjslkf']
for line in shivas_file:
    x = line.split(",")
    s = '%-20s %-20s %-20s' % tuple(x)
    print s

Production:

abc                      defggggggggg      kjdfksjdlkfjslkf
abcfdsfsdfskdjf          gggg              kjdfksjdlkfjslkf
abc                      defggggg          kjdfksjdlkfjslkf
0
Mihai Hangiu 13 juil. 2015 à 17:31

Vous utilisez la syntaxe de python3 dans python2. En python3, print est une fonction, mais en python2 - c'est juste une déclaration. Si vous voulez python2, utilisez

print x[0],'\t',x[1],'\t',x[2]

Au lieu de

print(x[0],'\t',x[1],'\t',x[2])
0
Nikolai Saiko 13 juil. 2015 à 17:28

Essaye ça

x[0]+'\t'+x[1]+'\t'+x[2]

Si vous ne voulez pas d’onglet, essayez ceci

print (x[0]+x[1]+x[2])
1
The6thSense 13 juil. 2015 à 17:23

Utilisez la .format méthode.

print '{:<15} {:<15} {:<15}'.format(x[0],x[1]x[2])
0
letsc 13 juil. 2015 à 17:25