Python: как проверить, является ли строка пустой линией
пытается выяснить, как написать цикл if, чтобы проверить, нет ли строки.
В файле много строк, и одна из них - пустая строка, чтобы отделяться от других операторов (а не ""; это возврат каретки, за которым следует другой возврат каретки, я думаю)
new statement
asdasdasd
asdasdasdasd
new statement
asdasdasdasd
asdasdasdasd
Так как я использую модуль ввода файлов, есть ли способ проверить, является ли строка пустой?
Используя этот код, он, похоже, работает, спасибо всем!
for line in x:
if line == '\n':
print "found an end of line"
x.close()
Ответы
Ответ 1
Если вы хотите игнорировать строки только с пробелами:
if not line.strip():
... do something
Пустая строка - это значение False.
Или если вы действительно хотите только пустые строки:
if line in ['\n', '\r\n']:
... do something
Ответ 2
Я использую следующий код для проверки пустой строки с пробелами или без них.
if len(line.strip()) == 0 :
# do something with empty line
Ответ 3
line.strip() == ''
Или, если вы не хотите "съедать" строки, состоящие из пробелов:
line in ('\n', '\r\n')
Ответ 4
Вы должны открыть текстовые файлы, используя rU
, чтобы символы новой строки были правильно преобразованы, см. http://docs.python.org/library/functions.html#open. Таким образом, нет необходимости проверять \r\n
.
Ответ 5
Я считаю более надежным использовать регулярные выражения:
import re
for i, line in enumerate(content):
print line if not (re.match('\r?\n', line)) else pass
Это будет соответствовать в Windows/unix. Кроме того, если вы не уверены в строках, содержащих только пробел char, вы можете использовать '\s*\r?\n'
как выражение