Skip to content

Instantly share code, notes, and snippets.

@ckhung
Created January 10, 2025 07:16
Show Gist options
  • Save ckhung/f3780855dd454ed34fda65bd5a42eb35 to your computer and use it in GitHub Desktop.
Save ckhung/f3780855dd454ed34fda65bd5a42eb35 to your computer and use it in GitHub Desktop.
convert csv files to a vcf (vcard) file
#!/usr/bin/python3
import argparse, re, csv
parser = argparse.ArgumentParser(
description='read csv files and print to stdout in vcf format',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('-d', '--delimiter', type=str, default=',',
help='field delimiter character')
parser.add_argument('mapping',
help='column => field name mapping, i.e. "FN: EMAIL:"')
parser.add_argument('csvfiles', nargs='*', help='csvf1 csvf2 ...')
args = parser.parse_args()
field_names = args.mapping.split()
for csvfn in args.csvfiles:
with open(csvfn, newline='') as csvfile:
for row in csv.reader(csvfile):
print('BEGIN:VCARD\nVERSION:3.0')
for i in range(len(field_names)):
print(field_names[i]+row[i])
print('END:VCARD\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment