Быстро читать конечно нужно с помощью генератора. Но если например запись с самого начала то не оптимально далее дочитывать строки. От сюда вопрос как можно после получения первого значения прекратить/прервать генератор (по аналогии как это делается breack в простом цикле)?
def get_usrname(user_uid): passwd_file = open('/etc/passwd') user_name_list = [passwd_file_line.split(':')[0] for passwd_file_line in passwd_file if passwd_file_line.split(':')[2] == user_uid] return user_name_list[0] """ ## example /etc/passwd psaftp:x:505:506:anonftp psa user:/:/sbin/nologin apache:x:506:507:Apache server:/:/sbin/nologin drweb:x:100:511:DrWeb system account:/var/drweb:/bin/false webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin sw-cp-server:x:507:512::/:/bin/true paveln:x:10000:509::/var/www/vhosts/localhost.localdomain:/bin/false nginx:x:498:497:Nginx user:/var/lib/nginx:/bin/false test3:x:10001:10001::/home/test3:/bin/bash test4:x:10002:10002::/home/test4:/bin/bash testuser:x:10003:10003::/home/testuser:/bin/bash testuser1:x:10003:10004::/home/testuser:/bin/bash """