2010-02-03 18 views
64

का उपयोग कर एक नया डेटबेस (नाम xx.db) बनाने के लिए कैसे करें यदि यह कनेक्ट होने पर पहले से मौजूद नहीं है तो स्वचालित रूप से डीबी फ़ाइल बनाने का कोई तरीका है?पायथन और एसक्लाइट 3

धन्यवाद

+0

क्या आप पूछ रहे हैं कि SQLite3 कैसे काम करता है जब यह एक नया, खाली डेटाबेस बनाता है? –

+0

ताकि आप यह जांचना चाहें कि डीबी वहां है या नहीं? – Euclid

उत्तर

94

कोड आप 'D:\\aaa.db' पैदा नहीं करता है, तो यह मौजूद नहीं है दे।

4

बहुत यकीन है कि कनेक्ट होने पर फ़ाइल कनेक्ट हो जाएगी।

10

यदि यह स्वचालित रूप से बनाया नहीं है, यह देखते हुए उप-निर्देशिका मौजूद हैं, सुनिश्चित करें कि आप सही

0

.connect मक्खी पर एक नया डेटाबेस फ़ाइल बनाने चाहिए निर्देशिका की अनुमति है, और आप पर्याप्त permissioning है।

+3

जबकि उत्तर सही है Iho यह कोई मूल्य नहीं जोड़ता है: यह सब पहले कहा गया है – cfi

2
import sqlite3 
conn=sqlite3.connect('xx.db') 
print "Database created and opened succesfully" 
5

जैसा कि पहले से ही उल्लेख किया गया था, यदि आपके पास इस पथ के लिए लिखने की अनुमति है तो आपके कोड को काम करना चाहिए। हालांकि, यह महत्वपूर्ण है कि निर्देशिका मौजूद होनी चाहिए। आप गैर मौजूदा फ़ोल्डर के लिए कॉल करते हैं:

conn = sqlite3.connect(r"D:\Some new non-existing folder\aaa.db") 

यह काम नहीं करेगा, आप

sqlite3.OperationalError: unable to open database file. 

ही होगा संबंधित पथ के लिए है:

1) conn = sqlite3.connect(r"aaa.db") 
2) conn = sqlite3.connect(r"Some new folder\aaa.db") 

पहले हमेशा काम करेंगे , क्योंकि आप पहले से मौजूद निर्देशिका में काम कर रहे हैं और दूसरा काम नहीं करेगा यदि आप पहले से ही टी फ़ोल्डर नहीं बनाते हैं।