From 5bd6333399d966828222e6e127986dda1c968ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=A3=D8=AD=D9=85=D8=AF=20=D8=A7=D9=84=D9=85=D8=AD=D9=85?= =?UTF-8?q?=D9=88=D8=AF=D9=8A=20=28Ahmed=20El-Mahmoudy=29?= Date: Wed, 11 Mar 2026 09:46:50 +0100 Subject: [PATCH] Simpler comprehension for record writing: (record[i] for i in fields_to_pass) Also fix: fields_to_pass list comprehension should loop on fields.split() --- ch05-files/e22b1_passwd_to_csv_selected.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/ch05-files/e22b1_passwd_to_csv_selected.py b/ch05-files/e22b1_passwd_to_csv_selected.py index 311f341..5cbb0ec 100755 --- a/ch05-files/e22b1_passwd_to_csv_selected.py +++ b/ch05-files/e22b1_passwd_to_csv_selected.py @@ -5,9 +5,9 @@ import csv -def passwd_to_csv(passwd_filename, csv_filename, fields_to_pass='1 2', delimiter='\t'): +def passwd_to_csv(passwd_filename, csv_filename, fields_to_pass='0 2', delimiter='\t'): fields_to_pass = [int(one_item) - for one_item in fields_to_pass] + for one_item in fields_to_pass.split()] with open(passwd_filename) as passwd, open(csv_filename, 'w') as output: infile = csv.reader(passwd, delimiter=':') @@ -15,8 +15,4 @@ def passwd_to_csv(passwd_filename, csv_filename, fields_to_pass='1 2', delimiter for record in infile: if len(record) > 1: - fields = [one_field - for index, one_field in enumerate(record) - if index in fields_to_pass] - - outfile.writerow(*fields) + outfile.writerow((record[i] for i in fields_to_pass))