J'ai deux fichiers CSV, les deux sont différents mais similaires. Je voudrais les comparer et produire des modifications et si une variable a été ajoutée ou supprimée. Je voudrais émettre les modifications apportées à un nouveau fichier CSV ou texte.
ci-dessous est un code de ce que j'ai déjà essayé ainsi que les deux fichiers CSV. Je serais également prêt à utiliser DIFFLIB et de produire cela à un fichier texte. P>
file1.csv: p> fichier2.csv: p> voici le code que j'ai essayé: p> la sortie attendue serait un fichier csv ou un fichier texte qui montrerait des choses comme: p>
3 Réponses :
Utilisez un outil de comparaison de fichiers, par exemple. diff (1) code> sous Unix / Linux. P>
Vous voulez comparer deux tables. Le bon outil pour le travail est la base de données relationnelle.
Les extraits de votre code utilisent Python. Python est livré avec le moteur de base de données SQLITE3, mais je ne vois pas une raison d'utiliser Python pour la tâche de traitement simple que vous demandez. P>
à la place, je le ferais dans mwe: p> sortie: p> SQLITE3 Code> lui-même, enveloppé dans un script shell: p> changes:
"name4 value removed"
"name8 value removed"
"name10 value removed"
"name3 value added"
"name7 value added"
"name11 value added"
"name12 value added"
"name1 value changed from 2.0001 to 3.0000"
"name5 value changed from 1.0000 to 1.0901"
Ma solution consiste à activer chaque CSV dans un dictionnaire avec la première colonne en tant que touches et la deuxième colonne que les valeurs. Après cela, je peux faire boucler les touches et déterminer si les valeurs correspondantes ont été modifiées, supprimées ou ajoutées.
name1 value changed from 2.0001 to 3.0000 name3 value added name4 value removed name5 value changed from 1.0000 to 1.0901 name7 value added name8 value removed name10 value removed name11 value added name12 value added
Je ne veux pas scinder les noms parce que j'utilisais juste cela comme exemple. Ce que je traite en fait n'est que des chaînes différentes. Que ferais-je définir la clé égale à si je ne voulais pas utiliser distinct_text_and_number code>?
Dans ce cas, il suffit d'utiliser pour la clé de tri (all_keys): code> et oubliez la touche = ... code> partie. Si vous ne vous souciez pas du tri, alors pour la clé dans All_Keys: Code>
On dirait que vous devriez rejoindre les deux fichiers et analyser les résultats
@Mucio pourriez-vous s'il vous plaît clarifier?
Vous pouvez mettre le contenu des fichiers dans deux structures, peut-être que la dict et les achètent pour voir si la valeur existe ou non ou est modifiée dans l'autre fichier. Ou vous pouvez utiliser quelque chose comme les pandas (et ses jointures) pour le faire
Avez-vous vérifié cette réponse? Stackoverflow .Com / Questions / 5268929 / ...