Dublette aus Bitwarden-Export entfernen
Python-Skript zum Bereinigen doppelter Einträge aus Bitwarden-CSV-Exporten
Wenn Sie Ihre Bitwarden-Datenbank jemals als CSV exportiert und dabei doppelte Einträge erhalten haben, ist dieses Skript genau das Richtige für Sie. Es durchsucht Ihren Export und entfernt alle Duplikate basierend auf den Schlüsselfeldern.
Das Problem
Manchmal erhalten Sie beim Exportieren Ihrer Bitwarden-Datenbank doppelte Einträge – dieselben Anmeldedaten, dieselben Notizen, einfach alles. Dieses Skript hilft Ihnen, diese Duplikate zu bereinigen, indem es nur eindeutige Einträge behält.
Funktionsweise
Das Skript liest Ihren Bitwarden-CSV-Export, überprüft jeden Eintrag anhand einer Reihe von Schlüsselfeldern (Typ, Name, URI, Benutzername, Passwort und Notizen) und behält nur das erste Vorkommen jeder eindeutigen Kombination. Ganz einfach!
Der Code
import csv
input_file = "bitwarden.csv" # name of the file you exported
output_file = "bitwarden_dedup.csv" # new file, without duplicates
seen = set()
rows = []
with open(input_file, newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
fieldnames = reader.fieldnames
for row in reader:
# key to consider entries "equal"
key = (
row.get("type", ""),
row.get("name", ""),
row.get("login_uri", ""),
row.get("login_username", ""),
row.get("login_password", ""),
row.get("notes", ""),
)
if key in seen:
continue
seen.add(key)
rows.append(row)
with open(output_file, "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)
print(f"saved {len(rows)} items without duplicates in {output_file}")
Verwendung
- Exportieren Sie Ihre Bitwarden-Datenbank als CSV (Einstellungen → Datenbank exportieren)
- Speichern Sie das Skript als
bitwarden_dedup.py - Stellen Sie sicher, dass Ihre Exportdatei
bitwarden.csvheißt (oder ändern Sie die Variableinput_file) - Führen Sie das Skript aus:
python bitwarden_dedup.py - Importieren Sie die bereinigte Datei
bitwarden_dedup.csvzurück in Bitwarden
Welche Felder werden überprüft?
Das Skript betrachtet zwei Einträge als Duplikate, wenn alle dieser Felder übereinstimmen:
- Typ (Anmeldung, Notiz, Karte usw.)
- Name
- Anmelde-URI
- Benutzername
- Passwort
- Notizen
Wenn auch nur ein Feld unterschiedlich ist, werden die Einträge als separate Elemente beibehalten.
Wichtige Hinweise
Sichern Sie Ihre Datenbank immer, bevor Sie Bereinigungsvorgänge durchführen. Exportieren Sie Ihre aktuelle Datenbank, bevor Sie die deduplizierte Version importieren – nur zur Sicherheit.
Wenn Sie Duplikate basierend auf anderen Feldern prüfen möchten (z. B. nur Benutzername + URI), können Sie das
key-Tuple im Code anpassen, um nur die Felder aufzunehmen, die für Sie relevant sind.
Das Skript verwendet das integrierte csv-Modul von Python und ein set, um nachzuverfolgen, was bereits gesehen wurde. Dadurch ist es selbst für große Datenbanken recht effizient.