La construction de la liste de listes à partir de fichier CSV
J'ai un fichier Excel(que j'exporte au format csv) que je veux analyser, mais j'ai de la difficulté à trouver la meilleure façon de le faire. Le csv est une liste des ordinateurs de mon réseau, et ce que les comptes sont dans le groupe administrateur local pour chacun. J'ai fait quelque chose de similaire avec les tuples, mais le nombre de comptes de chaque ordinateur de la gamme de 1 à 30. Je veux construire une liste de listes, puis passez par chaque liste pour trouver les comptes qui doivent être là(Administrateur, etc.) et de les supprimer, afin que je puisse ensuite exporter une liste de seulement les comptes qui ne devrait pas être un administrateur local, mais sont. Le fichier csv est formaté comme suit:
"computer1" Administrator localadmin useraccount
"computer2" localadmin Administrator
"computer3" localadmin Administrator user2account
Toute aide serait appréciée
EDIT: Voici le code que j'ai travaille avec
import csv
import sys #used for passing in the argument
file_name = sys.argv[1] #filename is argument 1
with open(file_name, 'rU') as f: #opens PW file
reader = csv.reader(f)
data = list(list(rec) for rec in csv.reader(f, delimiter=',')) #reads csv into a list of lists
f.close() #close the csv
for i in range(len(data)):
print data[i][0] #this alone will print all the computer names
for j in range(len(data[i])) #Trying to run another for loop to print the usernames
print data[i][j]
Le problème est avec le deuxième boucle for. Je veux être capable de lire à travers chaque ligne et pour l'instant, simplement de les imprimer.
Regardez python csv bibliothèque ou tablib et donner un coup de feu.
Aussi est-il de toute façon, vous pouvez utiliser des virgules comme séparateurs dans le fichier CSV? Elle permet simplement de suivre la valeur par défaut, qui peut être le problème auquel vous êtes confronté. En outre, ce qui ne fonctionne pas pour vous exactement, c'est à dire quel est le problème?
Poster le code maintenant. Le csv n'utilisez des virgules comme séparateur. J'ai juste utilisé onglets pour afficher le format du fichier csv est enregistré dans.
Avez-vous pensé à travailler directement avec les fichiers excel? Vous pouvez faire cela en utilisant le Python Excel modules (python-excel.org) et cela devrait vous épargner la peine de vous soucier de traiter avec un csv
OriginalL'auteur Michael Dornisch | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
Cela devrait vous mettre sur la bonne voie:
Deux dernières lignes d'imprimer la totalité de la ligne (y compris le "ordinateur"). Ne
... pour éviter l'impression de l'ordinateur deux fois.
Remarque que f.close() n'est pas nécessaire lors de l'utilisation de la "avec la" construction parce que la ressource sera automatiquement fermée lorsque le "avec" bloc est sorti.
Personnellement, je voudrais juste faire:
C'est une façon raisonnable de faire une itération sur les données et devrait vous donner une base solide à ajouter ce que plus logique est nécessaire.
U
est obsolète depuis3.4
et sera supprimée dans4.0
. Reportez-vous à ici.Vous n'avez pas besoin d'une compréhension de liste.
data = list(csv.reader(f, delimiter=','))
est beaucoup (chaque ligne est déjà une liste).OriginalL'auteur ben_frankly
C'est de cette façon que j'ai ouvert un .un fichier csv importé des colonnes de données comme des tableaux numpy - naturellement, vous n'avez pas besoin de tableaux numpy, mais...
OriginalL'auteur mauve