Added 'list_only' option (and modified 'run()' to respect it).
[python/dscho.git] / Mac / Demo / example0 / checktext.py
blob93a814df045b2a325a09ec9f578206e24f8902f7
1 """checktext - Check that a text file has macintosh-style newlines"""
3 import macfs
4 import sys
5 import EasyDialogs
6 import string
8 def main():
9 fsspec, ok = macfs.PromptGetFile('File to check end-of-lines in:', 'TEXT')
10 if not ok:
11 sys.exit(0)
12 pathname = fsspec.as_pathname()
13 fp = open(pathname, 'rb')
14 try:
15 data = fp.read()
16 except MemoryError:
17 EasyDialogs.Message('Sorry, file is too big.')
18 sys.exit(0)
19 if len(data) == 0:
20 EasyDialogs.Message('File is empty.')
21 sys.exit(0)
22 number_cr = string.count(data, '\r')
23 number_lf = string.count(data, '\n')
24 if number_cr == number_lf == 0:
25 EasyDialogs.Message('File contains no lines.')
26 if number_cr == 0:
27 EasyDialogs.Message('File has unix-style line endings')
28 elif number_lf == 0:
29 EasyDialogs.Message('File has mac-style line endings')
30 elif number_cr == number_lf:
31 EasyDialogs.Message('File probably has MSDOS-style line endings')
32 else:
33 EasyDialogs.Message('File has no recognizable line endings (binary file?)')
34 sys.exit(0)
36 if __name__ == '__main__':
37 main()