2016-07-21 4 views
0
import sqlite3 
db=sqlite3.connect('new.db') 
cursor=db.cursor() 
cursor.execute('''CREATE TABLE hello(id INTEGER PRIMARY KEY, 
Message_type, time_sent, time_received, response)''') 

に上記のプログラムを作成および編集するデータベースが、なぜの.pyファイルは、任意のデータベースを作成したり、アクセスすることはできませんと述べた名前でデータベースを実行し、作成されますが、 .pyファイルから同じプログラムを実行すると、テーブルやデータベースが作成されません。パイソンSqlite3-のPythonシェルが

+0

のためにあなたのホームディレクトリに見えますか?エラーメッセージが表示されますか? –

+0

私は手動でデータベースブラウザでチェックしています。-dbbrowser for sqlite – lotrgandalf

+0

db.commit()とdb.close()をスクリプトに追加するとどうなりますか? – Kyle

答えて

0
import sqlite3 
from os.path import expanduser 
db_dir = expanduser("~") 
db=sqlite3.connect(db_dir+'/new.db') 
cursor=db.cursor() 
cursor.execute('''CREATE TABLE hello(id INTEGER PRIMARY KEY, 
Message_type, time_sent, time_received, response)''') 

今、あなたはそれがテーブルを作成していないことを知っていますどのようnew.db

+0

その作業。ありがとう。 – lotrgandalf

+0

あなたの提供してくれたコードがデータベースを作成しましたが、読み取り専用です。私はそれを変更することはできません。任意のユーザーが読み取り/書き込みできる方法はありますか? – lotrgandalf

+0

あなたの$ HOMEディレクトリにあると思われます。 'db_dir'をほかの誰かがアクセス可能などこかにします。 '/ home/public'または何か。 –

0

.pyファイルがデータベースファイルを作成したとしますが、データベースファイルを正しい場所。これをプログラムの最後に追加してください:

print(os.path.join(os.getcwd(), 'new.db')) 

あなたのデータベースファイルを探してください。

+0

pythonシェルと.pyファイルは.dbファイルを別のディレクトリに保存しますか? – lotrgandalf

+0

それはそれぞれがどのように呼び出されるかによって異なります。どのように呼び出すかを指定していないので、これは可能性のようです。 –

+0

私はあなたの提案を試みました。ただし、データベースはos.pathコマンドによって返された場所にありません。 – lotrgandalf