Ich versuche herauszufinden, wie man einen if-Zyklus schreibt, um zu überprüfen, ob eine Zeile leer ist.
Die Datei enthält viele Zeichenfolgen, und eine davon ist eine leere Zeile, die von den anderen Anweisungen getrennt werden soll (nicht a ""
; ist ein Wagenrücklauf, gefolgt von einem anderen Wagenrücklauf, glaube ich).
new statement
asdasdasd
asdasdasdasd
new statement
asdasdasdasd
asdasdasdasd
Gibt es eine Möglichkeit zu überprüfen, ob eine Zeile leer ist, da ich das Dateieingabemodul verwende?
Mit diesem Code scheint es zu funktionieren, danke an alle!
for line in x:
if line == '\n':
print "found an end of line"
x.close()
if line in ['\n']
, sollten Sie dies durch ersetzenif line == '\n'
.os.linesep
als['\n', '\r\n']
?Ich benutze den folgenden Code, um die leere Zeile mit oder ohne Leerzeichen zu testen.
quelle
Oder wenn Sie Zeilen, die aus Leerzeichen bestehen, nicht "auffressen" möchten:
quelle
\r\n
Windows- ähnliche Zeilenenden (CRLF) berücksichtigt werden\n
,line == '\n'
ist es besser. Sie sollten es wahrscheinlich noch einmal versuchen und herausfinden, was Ihr Problem war.\r\n
wenn Sie nicht verwenden.mode='rU'
(2) Erhalten Sie einen Hinweis:print repr(line)
Wenn dies keinen Hinweis liefert, teilen Sie uns genau mit, was "nicht funktioniert". bedeutet für dich.Sie sollten Textdateien mit öffnen,
rU
damit Zeilenumbrüche ordnungsgemäß transformiert werden (siehe http://docs.python.org/library/functions.html#open) . Auf diese Weise müssen Sie nicht nachsehen\r\n
.quelle
U
Argument in Python3 nicht unterstützt wird.Ich denke, es ist robuster, reguläre Ausdrücke zu verwenden:
Dies würde in Windows / Unix übereinstimmen. Wenn Sie sich nicht sicher sind, ob Zeilen nur Leerzeichen enthalten, können Sie sie auch
'\s*\r?\n'
als Ausdruck verwendenquelle