Birisi python'da .mdb dosyasının nasıl açılacağı konusunda bana doğru yönlendirebilir mi? Bir tartışmayı başlatmak için normalde bir kod eklemeyi seviyorum ama nereden başlayacağımı bilmiyorum. Ben mysql ile python ile adil bir bit ile çalışıyorum. Benzer bir şekilde .mdb dosyaları ile çalışmak için bir yol olup olmadığını merak ediyordum?python ile .mdb erişim dosyalarının nasıl ele alınacağı
cevap
another SO question için yazdığım bazı kodlar aşağıdadır.
Üçüncü taraf pyodbc module gerektirir.
Bu çok basit örnek bir tabloya bağlanacak ve sonuçları bir dosyaya verilecektir.
Sorunuza, sahip olabileceğiniz daha spesifik gereksinimlerle genişletmek için çekinmeyin.
import csv, pyodbc
# set up some constants
MDB = 'c:/path/to/my.mdb'; DRV = '{Microsoft Access Driver (*.mdb)}'; PWD = 'pw'
# connect to db
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
# run a query and get the results
SQL = 'SELECT * FROM mytable;' # your query goes here
rows = cur.execute(SQL).fetchall()
cur.close()
con.close()
# you could change the mode from 'w' to 'a' (append) for any subsequent queries
with open('mytable.csv', 'wb') as fou:
csv_writer = csv.writer(fou) # default field-delimiter is ","
csv_writer.writerows(rows)
Bu önceki soruya benzer:
- What do I need to read Microsoft Access databases using Python?
- http://code.activestate.com/recipes/528868-extraction-and-manipulation-class-for-microsoft-ac/
Cevap kullanışlı olmalıdır.
bu bağlantıyı soruya cevap olsa da, burada cevabın temel kısımlarını kapsar ve başvuru için bağlantıyı sağlamak için daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Gönder] (/ review/düşük kaliteli yazılar/18943453) –
bernie'nin yanıtına ek olarak, veritabanının şemasını kurtarmanın mümkün olduğunu ekleyebilirim. Aşağıdaki kod tabloları listeler (b [2] tablonun adını içerir).
Java çalıştırabilirsiniz herhangi bir platformda çalışan bir çözüm içincolDesc = list(cur.columns())
, UCanAccess JDBC sürücüsü ile birlikte Jython veya JayDeBeApi kullanmayı düşünün:
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
tables = list(cur.tables())
print 'tables'
for b in tables:
print b
Aşağıdaki kod tüm tablolardan tüm sütunları listeler
. Ayrıntılar için ilgili soru
Read an Access database in Python on non-Windows platform (Linux or Mac)
mdbtools aracılığıyla, Microsoft Access veritabanları okuyabilir meza library by Reuben Cummings var bakın.
Kurulum
# The mdbtools package for Python deals with MongoDB, not MS Access.
# So install the package through `apt` if you're on Debian/Ubuntu
$ sudo apt install mdbtools
$ pip install meza
Kullanımı
>>> from meza import io
>>> records = io.read('database.mdb') # only file path, no file objects
>>> print(next(records))
Table1
Table2
…
Linux ile iyi çalışıyor (Cenevre 7 ve Ubuntu python 2.7 ile test), .mdb dosyalarından veri okumak için çok kolay bir yol. Teşekkürler ;-) – serfer2
- 1. MDB'ye erişme: erişim MDB dosyalarının üst boyut sınırı var mı?
- 2. CodeIgniter, modeller ve ORM, bunun nasıl ele alınacağı?
- 3. Django-kereviz projesi, sonuç-arka uçtan sonuçların nasıl ele alınacağı?
- 4. Symfony: Doktrin veri fikstür: büyük csv dosyasının nasıl ele alınacağı?
- 5. Bir MS erişim mdb dosyasını Delphi ile açabilir miyim?
- 6. Erişim veri tabanından erişim, Mac'te mdb araçlarının R yüklemesine aktarılıyor
- 7. Python ile API ayrıştırma - JSON'u BOM ile nasıl ele alır
- 8. Ubuntu'da Python ile bir Access veritabanı (.mdb) kullanma
- 9. Bir mdb dosyası nasıl düzeltilir?
- 10. Sonuç formu dizinin nasıl alınacağı?
- 11. argmax: satırın maksimum değeriyle nasıl alınacağı
- 12. python kullanarak hataları nasıl ele alınır?
- 13. header dosyalarının C++ ile nasıl bağlanması 0 +
- 14. nasıl erişim
- 15. MDB eşzamanlı örnekler başlatılıyor
- 16. Görüntü koordinatlarından dünya koordinatlarının nasıl alınacağı Vispy
- 17. Liste görünümünde satırın konum (konum) nasıl alınacağı
- 18. Nancy ile kimlik doğrulamayı nasıl ele almalıyım?
- 19. denetleyici istisnasını mockmvc ile nasıl ele alır
- 20. PHPExcel kütüphanesi kullanılarak excelden nasıl tarih alınacağı
- 21. Vim: Şu anda bulunduğum modun nasıl alınacağı
- 22. Powerpoint Geçerli yakınlaştırmanın nasıl alınacağı kullanıcı%?
- 23. django/python istek başlıklarına erişim
- 24. ruby dosyalarının nasıl yeniden adlandırılır?
- 25. Bash komut dosyalarının npm ile çalıştırılması
- 26. , erişim
- 27. Python: döngü içindeki tüm metin dosyalarının satırlarını oku
- 28. Mdb vs EJB 3.1 async metodu
- 29. Sorgu dizgisi "?" İle nasıl yönlendirilir? ve nasıl ele alınır
- 30. SQLite ile eşzamanlı erişim
Bu, Access'ten okumak için pyodbc ile varsayılan olarak dahil edilen bir sürücü olmadığından, Linux'tan çalışmıyor gibi görünüyor. "Veri kaynağı adı bulunamadı ve varsayılan sürücü belirtilmedi (0) (SQLDriverConnect)" – Cerin
@Cerin: güncellemeye teşekkürler. Soru "Linux" dan bahsetmediğinden, bu endişeye değinmedim. Saygılarımla. – bernie
@bernie linux'da bunu yapmanın bir yolu var mı? – NumenorForLife