0

I'm working with Django and I'd created two database. Everything seems to work fine, but then I had to edit one of the two and add a column.. From that moment the db wouldn't work anymore, so I exported in a text file the first database and thinking "now I recreate the two db and run a python script to refill the first one". The problem is that whene I try to run the script I get errors, because I can't run the command like bash using os.system, and I don't really know any other way... So, here's my code:

import os
def func ():
    try:
        FILE=open ("./languagedb.txt", "r")
    except IOError:
        print 'Can\'t open db file'
        exit (1)
    for line in FILE:
        if (line.startswith('INSERT')):
            values=line[43:-1]
            language=values[1:3]
            values=values[6:]
            field=""
            fieldBool=True
            i=0
            while fieldBool:
                try:
                    c=values[i]
                except:
                    print ''
                if c != '\'':
                    field=field+str(c)
                    i=i+1
                else:
                    fieldBool=False
            values=values [(i+3):]
            text=""
            textBool=True
            i=0
            while textBool:
                try:
                    c=values[i]
                except:
                    print ''
                if c != '\'':
                    text=text+str(c)
                    i=i+1
                else:
                    textBool=False
            comand="Language.objects.create(language=\""+language+"\", text=\""+text+"\", campo=\""+field+"\")"
            os.system(comand)

This is the way I call the shell:

python manage.py shell 

and the commands I give it:

import django
from languageMods.models import *
import mymigration #The name fo the file containing the above code
mymigration.func()

And I get the following error, for example

sh: -c: line 0: syntax error near unexpected token `language="en",'

Which is shell's error. Does someone know how to execute a command from a python script in a python shell?

1
  • Module OS runs Operating System commands, I don't see any OS command in variable comand. Commented Oct 27, 2016 at 6:02

1 Answer 1

1

If you start your script the way you describe it you can just call the django DB API directly in your code:

Language.objects.create(language=language, text=text, campo=field)
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.