import csv, sys outf = csv.writer(sys.stdout) last_row = None outf.writerow(["url", "start", "end", "text"]) for row in csv.DictReader(sys.stdin): if last_row is not None: if last_row['url'] == row['url']: outf.writerow([last_row['url'], last_row['start'], row['start'], last_row['text']]) else: outf.writerow([last_row['url'], last_row['start'], None, last_row['text']]) last_row = row outf.writerow([last_row['url'], last_row['start'], None, last_row['text']])