سؤال

لدي مجموعة من ملفات FoxPro (VFP9) DBF على نظام Ubuntu الخاص بي، هل توجد مكتبة لفتحها في Python؟أحتاج فقط إلى قراءتها، ويفضل أن يكون لدي حق الوصول إلى حقول المذكرة أيضًا.

تحديث:شكرًا @cnu، لقد استخدمت Yusdi Santoso dbf.py ويعمل بشكل جيد.مسكتك واحدة:يجب أن يكون امتداد اسم ملف المذكرة صغيرًا، على سبيل المثال. .fpt, ، لا .FPT وهذه هي الطريقة التي جاء بها اسم الملف من Windows.

هل كانت مفيدة؟

المحلول

يمكنك تجربة هذا وصفة على الحالة النشطة.

هنالك أيضا وحدة DBFReader والتي يمكنك تجربتها.

لدعم حقول المذكرة.

نصائح أخرى

أنا أفضل com.dbfpy.وهو يدعم كلا من القراءة والكتابة .DBF الملفات ويمكنه التعامل مع معظم أشكال التنسيق.إنه التطبيق الوحيد الذي وجدته يمكنه قراءة وكتابة ملفات DBF القديمة لبعض الأنظمة القديمة التي عملت معها.

إذا كنت لا تزال تتحقق من ذلك، فلدي محول GPL FoxPro-to-PostgreSQL على https://github.com/kstrauser/pgdbf .نحن نستخدمها لنسخ جداولنا بشكل روتيني إلى PostgreSQL لإعداد التقارير السريعة.

تمكنت من قراءة ملف DBF (مع ملفات BAK وCDX وFBT وTBK**) باستخدام حزمة dbf من PyPI http://pypi.python.org/pypi/dbf .أنا جديد على لغة python ولا أعرف شيئًا عن ملفات DBF، ولكن كان من السهل قراءة ملف DBF من أعمال صديقتي (تم إنشاؤه باستخدام تطبيق POS لمتجر الموسيقى يسمى AIMsi).

بعد تثبيت حزمة dbf (لقد استخدمت aptitude وقمت بتثبيت الإصدار 0.88 من dbf على ما أعتقد)، نجح كود python التالي:

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.في المرة الأولى التي قمت فيها بتشغيل البرنامج النصي، مع توفر DBF فقط، اشتكى من فقدان ملف الدعم.لذلك، قمت للتو بنسخ ملفات BAK، وCDX، وFPT (وليس FBT كما قلت قبل التحرير)، وملفات TBK ثم نجح الأمر.

الدفع http://groups.google.com/group/python-dbase

وهو يدعم حاليًا ملفات dBase III وVisual Foxpro 6.0 db...لست متأكدًا مما إذا كان تخطيط الملف قد تغير في VFP 9 أم لا...

إنه عام 2016 الآن واضطررت إلى التلاعب بحزمة dbf لتشغيلها.إليك إصدار python3 لتصدير ملف dbf إلى ملف CSV

import dbf

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

لقد واجهت بعض الأخطاء في الكود الموحد في البداية، ولكنني تمكنت من التغلب على ذلك عن طريق إيقاف تشغيل المذكرات.

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top