Das hier ist ein kleines Programm, das Antwort auf die Frage geben kann, welche Lineendings in einem Programm verwendet werden.
Das ist besonders wichtig, wenn man öfter zwischen Windows und Linux wechselt oder bei der CGI-Programmierung.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
******************************************************************************
* Gibt die Zeilenendzeichen für jede Zeile aus.
*
* filename: showendings.py
******************************************************************************
"""
import sys
#----------------------------------------------------------------------
def main():
crlf = 0
lf = 0
cr = 0
unknown = 0
# Dateiname herausfinden
try:
filename = sys.argv[1]
except:
sys.stderr.write("Bitte geben Sie den Dateinamen an.\n")
sys.exit(1)
f = file(filename, "r")
try:
for linenumber, line in enumerate(f):
print "%-4s" % (linenumber + 1),
clean_line = line[:20].replace("\r", "")
clean_line = clean_line.replace("\n", "")
print "%-20s ..." % clean_line,
if line.endswith("\r\n"):
crlf += 1
print "CRLF"
elif line.endswith("\n"):
lf += 1
print "LF"
elif line.endswith("\r"):
cr += 1
print "CR"
else:
unknown += 1
print "<unknown> -->",
print [ord(ch) for ch in line ], "-->", line
finally:
f.close()
print
print "CRLF:", crlf
print "LF:", lf
print "CR:", cr
print
#----------------------------------------------------------------------
if __name__ == "__main__":
main()
Code: Alles auswählen
gerold@gpw ~ $ python showendings.py xxxx.py
1 #!/usr/bin/env pytho ... LF
2 # -*- coding: utf-8 ... LF
3 """ ... LF
4 ******************** ... LF
5 * Description: ... LF
6 * ... LF
7 * Created: 2005 ... LF
8 * Requirements: Pyth ... LF
9 * GTK+ ... LF
10 ******************** ... LF
11 """ ... <unknown> --> [34, 34, 34] --> """
Anzahl CRLF: 0
Anzahl LF: 10
Anzahl CR: 0
Gerold