Thus spoke Preben Randhol (on 2006-06-16 10:36): > A short newbie question. I would like to extract some values from a > given text file directly into python variables. Can this be done simply > by either standard library or other libraries? Some pointers where to > get started would be much appreciated.
I used your example just to try that in python (i have to improve my python skills), but waved the white flag after realizing that there's no easy string/var-into-string interpolation. I tried to build some parser table which will then translate hings into a dictionary v_apples = '\b\S+'; v_ducks = '\b\S+'; v_butter = '\b\S+'; rg_ar = [ "Apples (v_apples)" , "(v_ducks) Ducks" , "(v_butter) butter" ] the above interpolation won't work, so I gave up. To give an idea what I intended, I'll add the short perl script which I took as a blue print for my python effort (your example text may be used): my @filter = ( # define filter table "Apples (apples)", "(ducks) Ducks", "(butter) g butter", ); my %varname = (); # variable names will be found in text my $example = do { local$/; <DATA> }; # read the appended example text # change <DATA> to <> for std input for (@filter) { # iterate over filter rules if( s/\((.+)\)/\\b(\\S+?)\\b/ ) { # pull out variable names ($1) my $v = $1; # and replace them by '\b(\S)\b' $varname{$v} = $1 if $example =~ /$_/; # pull values from } # text to varnames } your text prints then: (for (keys %varname) { print "$_\t=>\t$varname{$_}\n"; }) apples => 34 butter => 0.5 ducks => 56 with variable names taken from your text: __DATA__ An example text file: ----------- Some text that can span some lines. Apples 34 56 Ducks Some more text. 0.5 g butter ----------------- Above will do the job in perl, but I have no idea how to translate this to python, especially, as I said, the string-to-string interpolation thing for the build-up regex. Maybe some experts may help out? Regards Mirco -- http://mail.python.org/mailman/listinfo/python-list