簡體   English   中英

在python(Django)外殼中從python腳本運行python命令。 Django的

[英]Running a python commands from a python script in a python (Django) shell. Django

我正在使用Django,並創建了兩個數據庫。 一切似乎都可以正常工作,但是然后我不得不編輯兩者之一並添加一列。.從那一刻起,數據庫就不再工作了,所以我在文本文件中導出了第一個數據庫,並想“現在我重新創建了兩個db並運行python腳本以填充第一個”。 問題在於,當我嘗試運行腳本時會出錯,因為我無法使用os.system運行bash之類的命令,而且我真的不知道其他任何方式。因此,這是我的代碼:

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)

這就是我調用shell的方式:

python manage.py shell 

以及我給它的命令:

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

我得到以下錯誤,例如

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

這是殼牌的錯誤。 有人知道如何從python shell中的python腳本執行命令嗎?

如果按照描述方式啟動腳本,則可以直接在代碼中直接調用django DB API:

Language.objects.create(language=language, text=text, campo=field)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM