Unter Schirmherrschaft von
Factory Seven Media & Consulting
running-cool.de
   X   

[Krankheiten von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   

[Medikamente von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   

[Diagnostik & Laborwerte von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   

[Therapieverfahren von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   

[Gesundheitsthemen von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   

[Symptome von A bis Z]

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

   X   
Suche

Listenvergleich: CSV-Listen mit teilweise gleichen IDs vergleichen

Um zwei unterschiedliche CSV-Listen mit teilweise gleichen IDs in Perl zu vergleichen und eine dritte Liste mit übereinstimmenden IDs zu erstellen, kann folgenden Code verwendet werden:

Listing 1


#!/usr/bin/perl

# Öffnen Sie die beiden CSV-Dateien für den Lesezugriff
open(my $file1, '<', 'datei1.csv') or die "Konnte datei1.csv nicht öffnen: $!";
open(my $file2, '<', 'datei2.csv') or die "Konnte datei2.csv nicht öffnen: $!";

# Öffnen Sie die Ausgabedatei für den Schreibzugriff
open(my $out, '>>', 'ergebnis.csv') or die "Konnte ergebnis.csv nicht öffnen: $!";

# Erstellen Sie eine Hash-Tabelle zum Speichern der IDs aus der ersten Datei
my %ids;

# Einlesen der erste Datei Zeile für Zeile und speichert die IDs im Hash
while (my $line = <$file1>) {
chomp $line;

my @fields = split(/\t/, $line);

# Die Id befindet sich in der ersten Zelle
my $id = $fields[0];
$ids{$id} = 1;
}

# Einlesen derzweite Datei Zeile für Zeile und suchen nach übereinstimmenden IDs
while (my $line = <$file2>) {
chomp $line;
my @fields = split(/\t/, $line);

# Die Id befindet sich in der ersten Zelle
my $id = $fields[0];
if (exists $ids{$id}) {
# Schreibt die übereinstimmende ID in die Ausgabedatei
#print $out "$id\n";

# Schreibt die gesamte Zeile der übereinstimmende IDs in die Ausgabedatei
print $out "$line\n";
}
}

# Schließen Sie alle Dateien
close($file1);
close($file2);
close($out);


Dieser Code öffnet die beiden CSV-Dateien für den Lesezugriff und die Ausgabedatei für den Schreibzugriff. Dann wird eine Hash-Tabelle erstellt, um die IDs aus der ersten Datei zu speichern. Anschließend wird jede Zeile der zweiten Datei eingelesen, und wenn die ID in der Hash-Tabelle gefunden wird, wird die gesamte Zeile in die Ausgabedatei geschrieben.

Die Ausgabedatei enthält dann alle IDs (plus der gesamten Zeile der zweiten CSV-Datei), die in beiden CSV-Listen vorkommen. Zu beachten ist, dass dieser Code davon ausgeht, dass die IDs in der ersten Spalte jeder CSV-Datei stehen (my $id = $fields[0]) und durch Kommas getrennt sind. Wenn die CSV-Dateien eine andere Struktur haben, muß der Code entsprechend anpasst werden.

 

Inhaltsverzeichnis Top
Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.