[solved] logging multiple sessions
Hello!
I am running an experiment where each subject undergoes several sessions of the same procedure. I would like OpenSesame to progressively number each session of any give subject, i.e. when the operatore inserts the subject's number, the program should automatically look for the last session done by that subject and number the new session accordingly. Also, the log should be automatically given as filename the "subject+session number". Is this possible? What would be the easiest way to do it?
Thank you very much,
Paolo
Comments
Hi Paolo,
You can achieve this by closing the default logfile at the start of the experiment, providing a new name, and reopening the logfile. Of course, to determine the new name for the logfile, you need to use some logic to see which session-number logfile does not yet exist for that particular subject number.
It's a bit tricky, and requires some inline scripting. But the script below should get you started:
Cheers,
Sebastiaan
Check out SigmundAI.eu for our OpenSesame AI assistant!
excellent - thank you so much! the script does exactly what I want. The one thing it does not do, however, is to log the session_nr ... should I declare the variable somewhere for it to be logged?
thanks - Paolo
Hi,
Yes! In order to make in-an-inline-script-defined variables available in the GUI (e.g. the logger item) as well, you should set them at the end of you inline script by using the
exp.set()function. For example:For more information, see:
Does that help?
Best,
Lotje
Did you like my answer? Feel free to

awesome thank you!
Hi there,
I'm new to OpenSesame and Python - I tried using the above script to automatically set the session number, which is then saved as the file name. I tried entering it into the main script and it was removed once I clicked apply, and when I put it in a python inline script at the start of my experiment in the GUI, it didn't run. Am I missing something simple?
Ideally, I would like to use this with opensesamerun. Would that be possible?
Many thanks,
Joff
Yes, you (or rather we) are missing the actual error message that you get when the experiment doesn't run!
Check out SigmundAI.eu for our OpenSesame AI assistant!
Hi Sebastian,
Thanks for getting back to me. There was no error message, the experiment runs but it is as if the inline code is ignored.
Thanks,
Joff
Hi there,
I am trying to use this script with OS 3, but I receive the error " 'str' object has no attribute 'var' ". I think the problem is with the initiate logfile function. Any help would be greatly appreciated!
Many thanks,
Joff
Hi Joff,
You don't need to call
log.__init__(). Essentially, in Python you never (or very rarely) call_init__()functions. Those are constructors that are called automatically when an object is created, and OpenSesame has already createdlogfor you. So in this case, simply callinglog.open()will be enough to close the current logfile, and open a new one.Cheers!
Sebastiaan
Check out SigmundAI.eu for our OpenSesame AI assistant!
Great, that's working now. Thanks very much!