forked from turicas/socios-brasil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextract_holdings.py
32 lines (26 loc) · 952 Bytes
/
extract_holdings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from argparse import ArgumentParser
from csv import DictReader
from rows.utils import CsvLazyDictWriter, open_compressed
from tqdm import tqdm
def filter_csv(input_filename, output_filename, filter_function, progress=True):
fobj_reader = open_compressed(input_filename, mode="r")
fobj_writer = open_compressed(output_filename, mode="w")
csv_reader = DictReader(fobj_reader)
csv_writer = CsvLazyDictWriter(fobj_writer)
if progress:
csv_reader = tqdm(csv_reader)
for row in csv_reader:
if filter_function(row):
csv_writer.writerow(row)
fobj_reader.close()
fobj_writer.close()
if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument("input_filename")
parser.add_argument("output_filename")
args = parser.parse_args()
filter_csv(
args.input_filename,
args.output_filename,
lambda row: row["identificador_de_socio"] == "1",
)