On Thu, Sep 15, 2011 at 4:56 PM, Andrew Francis <[email protected]> wrote:
> Hi all,
>
> I'm new to this group; thanks for having me.
>
> I have generated a large number of text files (several lots of 81
> files) with the intention of reading them back into another sage
> program (via the command line).  The text filenames were generated by
> the line
>
>    outputfilename="Dropbox/simdata_g1%sk%sc%seps%s.sage"%
> (g1int,kint,gridc,grideps)
>
> so that the file names have a number of variables, and a typical file
> is of form simdata_g18k1c2eps3.sage.  No problem this far.
>
> The files are of a form that should be sage-readable, for instance one
> line is
> Lpeak = 0.00101546953017314
>
> I now want to use these files to generate some further output, reading
> them into a loop as follows:
>
> def grid_plot(grid,gamma,kappa):
>    for gridc in [0..8]:
>        for grideps in [0..8]:
>            load 'Dropbox/SAGE-outputs-5genes/gamma5kappa3/
> simdata_g15k3c%seps%s.sage'%(cstr,epsstr)
>            blah blah
>
> I am hoping to extract and use values such as that of Lpeak above.
>
> However while I am able to load a file for particular values of the
> parameters *outside* the def statement (using exactly the same load
> statement), I have been unable to make sage run through my files and
> extract the values inside them.  The error I get is:
>
> ValueError: argument (="'Dropbox/SAGE-outputs-5genes/gamma5kappa3/
> simdata_g15k3c%seps%s.sage'%(cstr,epsstr)") to load or attach must
> have extension py, pyx, sage, spyx, or m
>
> Clearly the file does have a correct extension (.sage), as the same
> command works fine outside the def statement.  So is there a problem
> loading files generically inside a function definition?  Is there some
> other way around this?
>
> Thanks,
> Andrew
>
> --
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to 
> [email protected]
> For more options, visit this group at 
> http://groups.google.com/group/sage-support
> URL: http://www.sagemath.org
>

Hi,

The following works -

>>> from sage.all import load, Integer
>>> import os
>>> for i in range(10):
...  os.system('echo a = %d > %d.sage' %(i,i))  # generating files
0.sage, 1.sage, etc
...

>>> for i in range(10):
...  load('%d.sage' %i)
...  print a

This gives the expected output. By the way I don't see your filename
changing inside the loop.

Rajeev

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to