La lecture des colonnes sous forme de listes
J'ai des données dans un fichier txt dans le formulaire. Données délimité par des tabulations
here
a b c
e f g
tere
x y z
w t y
J'ai besoin de lire des colonnes dans les listes. comme
col1 = ['here', '', '', tere, '', '']
col2= ['', 'a', 'e', '', 'x'.'w']
et ainsi de suite.
J'ai utilisé
import re
infile = open('text.txt', 'r')
i=0
a0='';a1='';a2='';a3='';a4='';a5='';a6='';a7='';
for line in infile:
[a1[i],a2[i],a3[i],a4[i],a5[i],a6[i],a7[i],a8[i]] = line.split('\t')
i+=1
Il dit 'str' object ne prend pas en charge l'élément de mission.
Des conseils?
OriginalL'auteur Zero | 2013-03-23
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez que toutes les données affectées à des variables par colonne, commencer avec une liste:
Et seulement ensuite les transformer en une liste de colonnes:
C'est maintenant une liste de listes;
per_column[0]
est la première colonne de données.Vous voulez vraiment utiliser le
csv
module au lieu de lire des données tabulaires.Votre code, malheureusement, n'est pas près de fermer assez de travail Python. Que vous avez attribué à plusieurs variables de chaîne de caractères vide, puis a essayé de l'utiliser sous forme de listes.
OriginalL'auteur Martijn Pieters
Correction à @Martijn Pieters réponse
Il devrait ressembler à cela
Et seulement ensuite les transformer en une liste de colonnes:
C'est maintenant une liste de listes;
per_column[0]
est la première colonne de données.Cela donne le résultat que je souhaite.
strip()
supprime les cellules vides aussi.OriginalL'auteur Zero
Ici,
une fois que vous avez les variables déclarées à des chaînes vides, vous ne pouvez pas changer la chaîne individuellement (caractère par caractère) parce qu'ils sont immuables chaînes.
Ainsi, vous pouvez utiliser des listes de chaînes au lieu de chaînes de caractères.
OriginalL'auteur soery
La
csv
module est souvent le meilleur moyen de gérer les fichiers délimités par des tabulations:De sortie:
OriginalL'auteur martineau
Comme Martijn Pieters dit, le csv module est très pratique. Assurez-vous juste de ne pas exécuter de mémoire (j'.e le fichier d'entrée doit nt être trop grande.)
OriginalL'auteur AniketD