def inputData():
while True:
newWord = input("請輸入新單字or按Enter返回主選單:\n")
if newWord == "": break
sqlstr = f"select * from table01 where word='{newWord}'"
cursor = conn.execute(sqlstr)
row = cursor.fetchone()
print(row)
if not row==None:
print(f"{newWord} 單字已重複")
continue
translation = input("請輸入翻譯:\n")
sqlstr = "INSERT INTO table01 VALUES ({},{})" .format(newWord, translation)
#f"update table01 set trans='{translation}' where word = '{newWord}'"
#f'insert into table01(word,trans) values("{newWord}","{translation}")'
conn.execute(sqlstr)
conn.commit()
print("單字已儲存")
我輸入完翻譯後按下enter
程式就直接結束了
我試了了半天還是看不出問題
麻煩高手幫幫忙了。
目前情況:
今天終於找到問題
我發現工作目錄不同
conn = sqlite3.connect('filename')
我存放檔案的地方在D:
上面這行程式卻一直在C:\之下工作
後來我在主程式加上
os.getcwd()和os.chdir()
但還是沒辦法
之後把絕對路徑貼在filename的位置才解決
所以想請問各位高手
為什麼會發生這些問題???
那些情況可能引起???
另外我想讓這程式有可攜帶性
也就是我想讓它在每台電腦的每個位置都能執行
該如何實現???
因為是文科生學程式
如果問題太愚蠢請見諒
再次感謝回答的各位高手
你要確定你工作目錄是對的。
另外python有方法知道程式本身是在那個資料夾下。
import os
# 得到執行檔所處資料夾之絕對路徑
# __file__是python的內建屬性,就是執行檔本身。
py_dir = os.path.dirname(os.path.abspath(__file__))
# 產生資料庫絕對路徑
db_path = os.path.join(py_dir, 'DataBase.db')
另外單引號加下去就是字串了
# 這樣是在工作目錄下產生一個叫filename的資料庫。
conn = sqlite3.connect('filename')
# 這樣才是依照filename變數去產生資料庫
conn = sqlite3.connect(filename)
你給它定義但是你沒有呼叫它啊,
最後面(放在最前頭)加一行
inputData()
就會開始執行了
執行了以後還會有問題,
就是conn沒有定義,
當然也許你是沒有PO出來那就算了。