On Feb 7, 9:34 am, "jeff" <[EMAIL PROTECTED]> wrote: > On Feb 6, 4:01 pm, "jeff" <[EMAIL PROTECTED]> wrote: > > > > > I am stumped trying to read binary data from simple files. Here is a > > code snippet, where I am trying to simply print little-endian encoded > > data from files in a directory. > > > for name in os.listdir(DOWNLOAD_DIR): > > filename = s.path.join(DOWNLOAD_DIR, name) > > if os.path.isfile(filename): > > f = open(filename, 'rb') > > while True: > > ele = unpack('<h', f.read(2))[0] > > print ele > > > When the code runs, 0 is always the data printed, but the data files > > are not all zero. > > > Any quick tips? > > > thanks > > Wow, supreme stupidity on my part. It turns out that there were a lot > of zeros at the beginning of the file, and the slowness of the console > just showed me the zero data during the test time of ~ 10 seconds.
That's a rather severe case of premature emailisation :-) > If > I throw away the zeros, I see my real data....sorry for the time waste Some further suggestions (not mutually exclusive): 1. redirect the console to a file 2. write more per line 3. download a free or shareware gadget that will show you the contents of a file in hex and char 4. You may want/need to write yourself a better dumper that's tailored to the type of files that you are loooking at, e.g. 498: 0031 FONT len = 001e (30) 502: b4 00 00 00 08 00 90 01 00 00 00 00 00 a5 07 01 ?~~~?~?? ~~~~~??? 518: 56 00 65 00 72 00 64 00 61 00 6e 00 61 00 V~e~r~d~a~n~a~ 532: 041e FORMAT len = 001e (30) 536: 05 00 19 00 00 23 2c 23 23 30 5c 20 22 44 4d 22 ?~? ~~#,##0\ "DM" 552: 3b 5c 2d 23 2c 23 23 30 5c 20 22 44 4d 22 ;\-#,##0\ "DM" 566: 041e FORMAT len = 0023 (35) 570: 06 00 1e 00 00 23 2c 23 23 30 5c 20 22 44 4d 22 ?~? ~~#,##0\ "DM" 586: 3b 5b 52 65 64 5d 5c 2d 23 2c 23 23 30 5c 20 22 ;[Red]\- #,##0\ " 602: 44 4d 22 DM" HTH, John -- http://mail.python.org/mailman/listinfo/python-list