Ai đó có thể chỉ cho tôi đúng hướng về cách mở tệp .mdb trong python không? Tôi thường thích bao gồm một số mã để bắt đầu một cuộc thảo luận, nhưng tôi không biết bắt đầu từ đâu. Tôi làm việc với mysql một chút công bằng với python. Tôi đã tự hỏi nếu có một cách để làm việc với các tập tin .mdb theo cách tương tự?cách xử lý tệp .mdb với python
Trả lời
Dưới đây là một số mã tôi đã viết cho another SO question.
Yêu cầu bên thứ ba pyodbc module.
Ví dụ rất đơn giản này sẽ kết nối với một bảng và xuất kết quả vào một tệp.
Hãy thoải mái mở rộng theo câu hỏi của bạn với bất kỳ nhu cầu cụ thể nào khác mà bạn có thể có.
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)
này trông giống như một câu hỏi trước:
- What do I need to read Microsoft Access databases using Python?
- http://code.activestate.com/recipes/528868-extraction-and-manipulation-class-for-microsoft-ac/
trả lời nên có ích.
Trong khi liên kết này có thể trả lời câu hỏi, nó là tốt hơn để bao gồm các thành phần cốt lõi của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ review/low-quality-posts/18943453) –
Ngoài phản hồi của bernie, tôi sẽ thêm rằng có thể khôi phục giản đồ của cơ sở dữ liệu. Mã dưới đây liệt kê các bảng (b [2] chứa tên của bảng).
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
Đoạn code dưới đây liệt kê tất cả các cột từ tất cả các bảng:
colDesc = list(cur.columns())
Đối với một giải pháp mà hoạt động trên bất kỳ nền tảng có thể chạy Java, xem xét sử dụng Jython hoặc JayDeBeApi cùng với tài xế UCanAccess JDBC . Để biết chi tiết, xem câu hỏi liên quan
Read an Access database in Python on non-Windows platform (Linux or Mac)
Có những meza library by Reuben Cummings có khả năng đọc cơ sở dữ liệu Microsoft Access thông qua mdbtools.
Lắp đặt
# 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
Cách sử dụng
>>> from meza import io
>>> records = io.read('database.mdb') # only file path, no file objects
>>> print(next(records))
Table1
Table2
…
hoạt động tốt với Linux (được thử nghiệm trong CenOs 7 và Ubuntu với python 2.7), cách dễ dàng để đọc dữ liệu từ các tệp .mdb. Cảm ơn ;-) – serfer2
- 1. Cách kết nối với tệp MS Access (mdb) bằng C#?
- 2. Xử lý các thư mục với dấu cách Python subprocess.call()
- 3. Xử lý với luồng tệp tạm thời
- 4. Xử lý ngoại lệ Python
- 5. python đa xử lý
- 6. Xử lý tệp .txt lớn trong python hiệu quả
- 7. Xử lý các tệp netCDF rất lớn trong python
- 8. Tải lên và xử lý tệp bằng Python
- 9. Cách xử lý ~ trong đường dẫn tệp
- 10. Khả năng xử lý đa xử lý Python
- 11. Xử lý một phần tệp bằng bộ tiền xử lý
- 12. xử lý ngoại lệ python
- 13. giao thức xử lý đa xử lý python
- 14. Xử lý các tệp chế độ org trong python
- 15. Xử lý lỗi Unicode với readline của Python 3()
- 16. Python: Xử lý đa lõi?
- 17. Truy cập MDB: truy cập các tệp MDB có giới hạn kích thước trên không?
- 18. ngừng xử lý tệp php
- 19. Cách xử lý hết tệp khi đọc tệp xml
- 20. Xử lý rss chuyển hướng với Python/urllib2
- 21. Xử lý Variable Số cột với Pandas - Python
- 22. Làm cách nào để gửi đầu ra Xử lý đa xử lý python tới Tkinter gui
- 23. Vấn đề ssl của Python với đa xử lý
- 24. xử lý python với 2 cửa sổ gtk
- 25. Cách xử lý biểu mẫu với CodeIgniter
- 26. Làm cách nào để xử lý các tệp tĩnh bằng Python webapp2 trong Heroku?
- 27. Các tệp xử lý theo lô đệ quy với pngquant
- 28. OpenCV 2.4 in python - Xử lý video
- 29. Python win32 com: cách xử lý tham số 'out'?
- 30. Thiết kế đa xử lý Python
Điều này dường như không hoạt động trên Linux, vì không có trình điều khiển nào được bao gồm theo mặc định với pyodbc để đọc Truy cập. "Không tìm thấy tên nguồn dữ liệu và không có trình điều khiển mặc định nào được chỉ định (0) (SQLDriverConnect)" – Cerin
@Cerin: cảm ơn bạn đã cập nhật. Vì câu hỏi không chỉ rõ "từ Linux" nên tôi đã không giải quyết vấn đề đó. Trân trọng. – bernie
@bernie là có một cách để làm điều này trong linux? – NumenorForLife