On 19/05/12 12:42, Spyros Charonis wrote:
I have tried the following two snippets which both results in the same
error

import os, glob
os.chdir('users/spyros/desktop/3NY8MODELSHUMAN/')
homology_models = glob.glob('*.pdb')
for i in range(len(homology_models)):
        python serialize_PIPELINE_models.py homology_models[i]

OK, now we see the problem.

You are trying to invoke the interpreter from within
the interpreter. You don't do that.

Instead you need to call the functions defined inside serialize_PIPELINE_models.py from your script. To do that
you will need to import serialize_PIPELINE_models.py using

import serialize_PIPELINE_models

or, since its a long name:

import serialize_PIPELINE_models as spm

Than you can access the code functions inside using

spm.serialise(filename)

Or whatever the functions inside serialize_PIPELINE_models.py are.

Another thing which makes life easier is to use the for loop differently.
Instead of:
> homology_models = glob.glob('*.pdb')
> for i in range(len(homology_models)):

Just use:

 for fn in glob.glob('*.pdb'):
        spm.serialise(fn)


But you will first need to ensure that the code inside serialize_PIPELINE_models.py is available to use as functions.

The other option of course is to miss out Python at this level and write a bash script to call Python. It would look something like:

#!/bin/bash
###########################
cd users/spyros/desktop/3NY8MODELSHUMAN/
for file in *.pdb
do
        python serialize_PIPELINE_models.py $file
done
############################

Which might be the simplest thing if the serialize_PIPELINE_models.py
already works as you require.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to