On 10 Mar 2005 09:41:05 -0800, rumours say that "Albert Tu" <[EMAIL PROTECTED]> might have written:
>Dear there, > >We have an x-ray CT system. The acquisition computer acquires x-ray >projections and outputs multiple data files in binary format (2-byte >unsigned integer) such as projection0.raw, projection1.raw, >projection2.raw ... up to projection500.raw. Each file is >2*1024*768-byte big. > >I would like to read those files and convert to ascii files in %5.0f/n >format as projection0.data ... projection500.data so that our >visualization software can undersatnd the projection images. I was >trying to do this conversion using Python. However, I had troubles >declaring the file names using the do-loop index. Anyone had previous >experience? Regular expressions could help, but if you *know* that these are the filenames, you can (untested code): PREFIX= "projection" SUFFIX_I= ".raw" SUFFIX_O= ".data" import glob, struct for filename in glob.glob("%s*%s" % (PREFIX, SUFFIX_I)): number= filename[len(PREFIX):-len(SUFFIX_I)] fpi= open(filename, "rb") fpo= open("%s%s%s" % (PREFIX, number, SUFFIX_O), "w") while 1: datum= fpi.read(2) if not datum: break fpo.write("%5d\n" % struct.unpack("H", datum)) # check endianness!!! fpi.close() fpo.close() -- TZOTZIOY, I speak England very best. "Be strict when sending and tolerant when receiving." (from RFC1958) I really should keep that in mind when talking with people, actually... -- http://mail.python.org/mailman/listinfo/python-list