Почему моя функция-генератор не возвращает значениеPython

Программы на Python
Anonymous
Почему моя функция-генератор не возвращает значение

Сообщение Anonymous »


Я изучаю Python.

Я пытаюсь прочитать текстовый файл (Linux: /etc/passwd) Я взял ответ отсюда и попытался реализовать его с помощью своих знаний. Из всего моего чтения я знаю, что многие веб-сайты утверждают, что используют readline() (помогает с большими файлами).

импортировать панд как pd импортировать numpy как np защита nonblank_lines(f): сырая линия = f.readline() в то время как rawline != '': линия = rawline.rstrip() print("#'#'#'#'#'",строка) если строка: линия текучести сырая линия = f.readline() файлин="/etc/passwd" данные=[] columnsnames=['Имя пользователя','Пароль','UID','GID','Имя пользователя','HOMEDIR','Оболочка входа'] с open(filein,'r') в качестве пароля: print(f"passwdline: {passwdline}") для строки в nonblank_lines(passwdline): print(f"Возврат из функции ====, {строка}") datain.append(line.split(':')) Для справки я отредактировал файл /etc/passwd и вставил пустую строку для проверки своей программы

root:x:0:0:root:/root:/bin/bash бин:x:1:1:bin:/bin:/sbin/nologin демон:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin синхронизация:x:5:0:sync:/sbin:/bin/sync Однако моя программа продолжает возвращать пустые строки вместо каждой непустой строки в файле /etc/passwd:

#'#'#'#'#' #'#'#'#'#' #'#'#'#'#' #'#'#'#'#' #'#'#'#'#' повторяется постоянно.

Что я делаю не так. Я предполагаю, что это связано с размещением строки чтения после оператора доходности, но я понятия не имею, почему это может быть проблемой. Есть мысли?

Вернуться в «Python»