Comment lire un fichier CSV une ligne à la fois et remplacer / modifier certaines lignes que vous allez?
J'ai un 60 GO fichier csv j'ai besoin de faire quelques modifications. Le client veut des changements sur les fichiers de données, mais je ne veux pas de régénérer les données dans ce fichier, car il a fallu 4 jours pour le faire.
Comment puis-je lire le fichier ligne par ligne (ne pas charger tous en mémoire!), et apporter des modifications à ces lignes que je vais, en remplacement de certaines valeurs, etc.?
source d'informationauteur richard
Vous devez vous connecter pour publier un commentaire.
Le processus serait quelque chose comme ceci:
StreamWriter
dans un fichier temporaire.StreamReader
pour le fichier cible.Remarque concernant les Étapes 2 et 3.1: Si vous êtes confiant dans la structure de votre fichier et il est assez simple, vous pouvez faire tout cela hors de la zone, comme décrit (je vais inclure un échantillon dans un instant). Cependant, il existe des facteurs dans un fichier CSV qui peut besoin d'attention (comme reconnaître quand un séparateur est utilisé littéralement dans la valeur d'une colonne). Vous pouvez drudge par vous-même, ou essayez une solution existante.
Exemple de base en utilisant simplement
StreamReader
etStreamWriter
:fichiers mappés en mémoire est une nouvelle fonctionnalité .NET Framework 4 qui peut être utilisé pour éditer des fichiers volumineux.
lire ici http://msdn.microsoft.com/en-us/library/dd997372.aspx
ou google fichiers mappés en Mémoire
Viens de lire le fichier ligne par ligne, avec streamreader, puis utiliser les REGEX! L'outil le plus étonnant dans le monde.