Sorry, still having problems ....
> > I am trying to read data from a file that has format > > item_name num_items item_type items .... > > > > eg > > > > TIME 1 0.0 > > DISTANCE 10 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 > > Where is the item_type? Ooops, the data format should look like this: TIME 1 F 0.0 DISTANCE 10 F 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 F=float, D=double, L=logical, S=string etc > > > I can read this if the data are in ASCII format using > > > > in_file = open("my_file.dat","r") > > data1 = in_file.read() > > tokens = data1.split() > > It might be easier to process line by line using readline > or readlines rather than read but otherwise, ok so far... > > > and then stepping through the resulting list but the data > > also appear in the same format in a binary file. > > When you say a binary file do you mean an ASCII file > encoded into binary using some standard algorithm? > Or do you mean the data is binary so that, for example, > the number 1 would appear as 4 bytes? If so do you > know how strings (the name) are delimited? Also > how many could be present - is length a single or > multiple bytes? and are the reors fixed length or > variable? If variable what is the field/record separator? Sorry, no idea what the difference is. All I know is that the data were written by a FORTRAN program using the UNFORMATTED argument in the WRITE statement and that if they had been written FORMATTED then we would get afile that looks something like the example above > > You may need to load the file into a hex editor of debugger > to determine the answers... > > Having done that the struct module will allow you to read > the data. > > You can see a basic example of using struct in my > tutorial topic about handling files. The first part of the file should contain a string (eg "TIME"), an integer (1) and another string (eg "F") so I tried using import struct in_file = open(file_name+".dat","rb") data = in_file.read() items = struct.unpack('sds', data) Now I get the error error: unpack requires a string argument of length 17 which has left me completely baffled! > > > ------------------------------ > > Message: 4 > Date: Mon, 02 Feb 2009 14:53:59 -0700 > From: Bernd Prager <be...@prager.ws> > Subject: [Tutor] question about mpmath product expression > To: tutor@python.org > Message-ID: <ac7e7f56dc4bc0903dc7df8861f9b...@prager.ws> > Content-Type: text/plain; charset="UTF-8" > > Does anybody know if there is a precision difference when I use mpmath and > take an expression: > > from mpmath import * > mp.dps = 100 > mu0 = [mpf('4') * pi * power(10, -7) > > rather then: > > mu0 = fprod([mpf('4'), pi, power(10, -7)]) > > ? > > Thanks, > -- Bernd > > > ------------------------------ > > Message: 5 > Date: Mon, 2 Feb 2009 14:46:18 -0800 (PST) > From: Bernard Rankin <beranki...@yahoo.com> > Subject: [Tutor] regex: not start with FOO > To: Tutor@python.org > Message-ID: <528538.84097...@web112218.mail.gq1.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > Hello, > > > I'd like to match any line that does not start with FOO. (Using just a > reg-ex rule) > > 1) What is the effective difference between: > > (?!^FOO).* > > ^(?!FOO).* > > 2) Is there a better way to do this? > > > Thanks, > :) > > > > > > > > ------------------------------ > > Message: 6 > Date: Mon, 02 Feb 2009 15:50:18 -0800 > From: "WM." <wfergus...@socal.rr.com> > Subject: [Tutor] newton's sqrt formula > To: tutor@python.org > Message-ID: <498786ba.6090...@socal.rr.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > # program to find square root > square = input ('Please enter a number to be rooted, ') > square = square * 1.0 > guess = input('Please guess at the root, ') > guess = guess * 1.0 > newguess = 0. > > while guess**2 != square: > # Newton's formula > newguess = guess - (guess * guess - square) / (guess * 2) > guess = newguess > guess**2 - square > print > print > print guess, ' is the square root of ', square > print > print > print 'bye' > Last month there was a square root program discussed. I wondered if the > tide of my ignorance had receded enough that I could take a whack at > messing with it. > I offer this rewrite for your critique. Can it be terser, faster, prettier? > Thank you. > > > > > ------------------------------ > > Message: 7 > Date: Tue, 3 Feb 2009 00:44:27 -0000 > From: "Alan Gauld" <alan.ga...@btinternet.com> > Subject: Re: [Tutor] newton's sqrt formula > To: tutor@python.org > Message-ID: <gm841b$l9...@ger.gmane.org> > Content-Type: text/plain; format=flowed; charset="iso-8859-1"; > reply-type=response > > "WM." <wfergus...@socal.rr.com> wrote > > > square = input ('Please enter a number to be rooted, ') > > square = square * 1.0 > > Use raw_input() instead of input() and don't multiply > by 1.0 - instead convert to float using float(): > > square = float( raw_input ('Please enter a number to be rooted, ')) > > > guess = input('Please guess at the root, ') > > guess = guess * 1.0 > > newguess = 0. > > > > while guess**2 != square: > > # Newton's formula > > newguess = guess - (guess * guess - square) / (guess * 2) > > guess = newguess > > You could just combine these two > > guess = guess - (guess * guess - square) / (guess * 2) > > > guess**2 - square > > That line does not do anything! > > > print > > print > > print guess, ' is the square root of ', square > > print > > print > > print 'bye' > > Partly a style thing but I would prefer you either used triple > quoted strings and format chars or inserted \n characters. > ie either: > > > print """ > > > %s is the square root of %s > > > > bye""" % (guess, square) > > OR > > print "\n\n\n",guess," is the square root of", square,"\n\n\nbye!" > > Or combine both: > > print "\n\n\n%s is the square root of %s\n\n\nbye!" % (guess, square) > > Actually, if it was me I'd use two prints: > > print "\n\n\n%s is the square root of %s" % (guess, square) > print"\n\n\nbye!" > > > I offer this rewrite for your critique. Can it be terser, faster, > > prettier? > > Thank you. > > Not very critical but maybe it helps... > > Alan G. > > > > > ------------------------------ > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > > End of Tutor Digest, Vol 60, Issue 5 > ************************************ > -- ------------------------------------------------- Visit Pipex Business: The homepage for UK Small Businesses Go to http://www.pipex.co.uk/business-services _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor