filename = selectedCompany + "/" + "1" + ".txt" # define filename to save file with
for row in csv_file:
if selectedCompany == row[1]:
count +=1
if not os.path.exists(os.path.dirname(filename)):
try:
os.makedirs(os.path.dirname(filename))
except OSError as exc: # Guard against race condition
if exc.errno != errno.EEXIST:
raise
totalCnt=0
print listOfCompanies #to debug
print selectedCompany #to debug
while totalCnt < len(csv_file): # as long as total count is lesser than length of csv file
totalCnt+=1 # add total count of 1
for row in csv_file:
if selectedCompany == row[:][1]: # if selected company equals to the company in csv file
with open(filename, "w") as output: # save the .txt file
output.write(str(csv_file[totalCnt])) # save the contents of the csv file
else:
totalCnt+=1 # add total count of 1
Bonjour à tous, J'utilise python pour lire les données d'un fichier csv et les exporter en tant que fichiers .txt individuels. Ma question est comment puis-je faire référence à un champ spécifique dans une rangée spécifique?Comment faire référence à un champ spécifique dans une ligne lors de l'interrogation dans le fichier CSV
Par exemple mes ensemble de données dans un fichier de format CSV est la suivante
Nom Sexe Age
john m 15
Mary F 13
sam m 12
A l'entrée de l'utilisateur du nom (c'est-à-dire sam), je voudrais pouvoir exporter la totalité de la ligne de données (c'est-à-dire "sam, m, 12") en tant que données et l'exporter en tant que fichier .txt.
Si je veux indiquer le sexe de Sam, par exemple, comment je vais le faire? De plus, comment utiliser correctement la boucle for pour m'assurer que je peux exporter tous les fichiers .txt nécessaires?
J'ai essayé de faire des recherches, mais mon cas est une erreur de logique et il est vraiment difficile à résoudre.
J'apprécierais vraiment toute aide.
Edit:
Message d'erreur après avoir utilisé le module panda:
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1797, in
__getitem__
return self._getitem_column(key)
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1804, in _
getitem_column
return self._get_item_cache(key)
File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 1084, in
_get_item_cache
values = self._data.get(item)
File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 2851,
in get
loc = self.items.get_loc(item)
File "C:\Python27\lib\site-packages\pandas\core\index.py", line 1572, in
get_loc
return self._engine.get_loc(_values_from_object(key))
File "pandas\index.pyx", line 134, in pandas.index.IndexEngine.get_loc
(pandas\index.c:3824)
File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc
(pandas\index.c:3704)
File "pandas\hashtable.pyx", line 686, in p
pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12280)
File "pandas\hashtable.pyx", line 694, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12231)
KeyError: False
je regarderais dans le module de bibliothèque standard [csv] (https://docs.python.org/3/library/csv.html). Il fournit un objet 'lecteur()' pratique composé d'une liste de listes que vous pouvez inscrire (c'est-à-dire index par col). – pstatix
Ou même 'DictReader' qui utilise les en-têtes col comme des clés de dictionnaire – Adirio
Salut Sarah, s'il vous plaît vérifier ma réponse et demandez-moi ce que vous avez besoin de plus, je vais essayer d'aider. –