2008-09-01 16 views
21

मुझे अपने उबंटू सिस्टम पर फॉक्सप्रो (वीएफपी 9) डीबीएफ फाइलों का एक गुच्छा मिला है, क्या इन्हें पाइथन में खोलने के लिए एक लाइब्रेरी है? मुझे केवल उन्हें पढ़ने की जरूरत है, और अधिमानतः मेमो फ़ील्ड तक पहुंच भी होगी।पायथन से फॉक्सप्रो डीबीएफ फ़ाइल पढ़ने का सबसे आसान तरीका क्या है?

अद्यतन: धन्यवाद @ सीएनयू, मैंने यूसुडी सैंटोसो के dbf.py का उपयोग किया और यह अच्छी तरह से काम करता है। एक गोचा: ज्ञापन फ़ाइल नाम एक्सटेंशन कम मामला होना चाहिए, यानी .fpt, .FPT नहीं, जो कि फ़ाइल नाम फ़ाइल से आया था।

उत्तर

7

आप इस recipe on Active State को आजमा सकते हैं।

एक DBFReader module भी है जिसे आप आजमा सकते हैं।

memo fields के लिए समर्थन के लिए।

+5

[DBFReader मॉड्यूल] (http://www.garshol.priv.no/download/software/python/dbfreader.py) अब एक मृत कड़ी है। – Caltor

+1

ज्ञापन फ़ील्ड प्रोग्राम में यह संख्या उस सटीक डेटा को नहीं देती है, जो उस इंडेक्स नंबर के आधार पर डेटा को पुनर्प्राप्त करने के लिए कैसे डेटा संग्रहीत करता है। – MONTYHS

+0

सितंबर 2008 (उत्तर का समय) के बाद से, कई और विकल्प हैं (नवंबर 2015), उदाहरण के लिए: https://pypi.python.org/pypi/dbf, https://pypi.python.org/pypi/ dbfread /, http://sourceforge.net/projects/dbfpy/। मैंने व्यक्तिगत रूप से dbfread चुना क्योंकि यह अच्छी तरह से प्रलेखित है। –

16

मैं dbfpy पसंद करता हूं। यह .DBF फ़ाइलों को पढ़ने और लिखने दोनों का समर्थन करता है और प्रारूप के अधिकांश बदलावों का सामना कर सकता है। यह एकमात्र कार्यान्वयन है जिसे मैंने पाया है कि दोनों पुराने सिस्टम की विरासत डीबीएफ फाइलों को पढ़ और लिख सकते हैं जिनके साथ मैंने काम किया है।

9

यदि आप अभी भी यह जांच रहे हैं, तो मेरे पास https://github.com/kstrauser/pgdbf पर एक जीपीएल फॉक्सप्रो-टू-पोस्टग्रेएसक्यूएल कनवर्टर है। हम तेजी से रिपोर्टिंग के लिए PostgreSQL में नियमित रूप से हमारी टेबल कॉपी करने के लिए इसका उपयोग करते हैं।

+0

मैंने कुछ और की जांच करते समय इसे संयोग से देखा। अब एक पोस्टग्रेएसक्यूएल प्रेमी, वीएफपी और एमएस एसक्यूएल से आ रहा है, यह बहुत सराहना की है। धन्यवाद! –

5

बाहर चेक http://groups.google.com/group/python-dbase

यह वर्तमान में dBase III और विजुअल फॉक्सप्रो 6.0 db फ़ाइलों का समर्थन करता ... यकीन नहीं करता है, तो VFP 9 या नहीं में फ़ाइल लेआउट परिवर्तन ...

+1

सबसे अद्यतित कोड [पीईपीआई] (http://pypi.python.org/pypi/dbf/) पर है। –

8

मैं एक पढ़ने में सक्षम था डीबीएफ फ़ाइल (संबंधित बीएके, सीडीएक्स, एफबीटी, टीबीके फाइलों के साथ **) पीपीपीआई http://pypi.python.org/pypi/dbf से डीबीएफ पैकेज का उपयोग कर। मैं अजगर के लिए नया हूं और डीबीएफ फाइलों के बारे में कुछ भी नहीं जानता, लेकिन यह मेरी प्रेमिका के व्यवसाय से डीबीएफ फ़ाइल पढ़ने के लिए आसानी से काम करता है (एक संगीत स्टोर पीओएस एप्लिकेशन के साथ बनाया गया है जिसे एआईएमसी कहा जाता है)।

DBF पैकेज स्थापित करने के बाद (मैं योग्यता का इस्तेमाल किया और DBF संस्करण 0.88 स्थापित मुझे लगता है कि), निम्नलिखित अजगर कोड काम किया:

from dbf import * 
test = Table("testfile.dbf") 
for record in test: 
    print record 
    x = raw_input("") # to pause between showing records 

सब मैं अब के लिए पता है, लेकिन उम्मीद है कि यह किसी के लिए एक उपयोगी शुरुआत है कि अन्यथा यह सवाल कौन पाता है!

अप्रैल 21, 2012 SJK संपादित करें: प्रति एतान फर्मन की टिप्पणी, मैं कहना चाहिए कि मैं वास्तव में जो डेटा फ़ाइलों के आवश्यक थे, DBF फ़ाइल के अलावा पता नहीं है। पहली बार जब मैंने स्क्रिप्ट चलाया, केवल डीबीएफ उपलब्ध था, तो उसने एक लापता समर्थन फ़ाइल की शिकायत की। इसलिए, मैंने बस बीएके, सीडीएक्स, एफपीटी (एफबीटी नहीं जैसा कि मैंने संपादन से पहले कहा था) पर प्रतिलिपि बनाई थी, टीबीके फाइलें और फिर यह काम किया।

+1

यह पैकेज अभी तक आईडीएक्स/सीडीएक्स फाइलों का समर्थन नहीं करता है, हालांकि मुझे उम्मीद है कि इस साल यह जगह होगी। –

+0

क्या आप वाकई एफबीटी थे और एफपीटी नहीं? एफपीटी फाइलें ज्ञापन फाइलें हैं। सीडीएक्स इंडेक्स फ़ाइल है हालांकि @Ethan का कहना है कि ये समर्थित नहीं हैं, इसलिए अनुपलब्ध फ़ाइल होने की संभावना नहीं थी। डीबीएफ के साथ-साथ ये केवल 3 फाइलें हैं जिन्हें आपको डीबीएफ/टेबल पढ़ने की आवश्यकता होनी चाहिए। – Caltor

+0

यूप! टाइपो, मेरा मतलब एफपीटी था। यदि मैं कर सकता हूं तो मैं ऊपर संपादित कर दूंगा। धन्यवाद! –

4

यह 2016 है और मुझे इसे काम करने के लिए डीबीएफ पैकेज के साथ परेशान करना पड़ा। यहाँ एक python3 सिर्फ एक csv

import dbf 

d=dbf.Table('mydbf.dbf') 
d.open() 
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True) 

करने के लिए एक DBF फ़ाइल निर्यात करने के लिए मैं पहली बार में कुछ यूनिकोड त्रुटि थी, लेकिन मेमो को बंद करके कि चारों ओर हो गया संस्करण है।

import dbf 

d=dbf.Table('mydbf.dbf', ignore_memos=True) 
d.open() 
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True) 
संबंधित मुद्दे