DBF là định dạng được tạo bởi ứng dụng cơ sở dữ liệu lâu đời dBase. Đây là định dạng tệp phổ biến cho dữ liệu được tạo từ các hệ thống cũ
Giải pháp
Các tệp DBF phải được chuyển đổi thành CSV trước khi được nhập vào PANDA
Nếu bạn không phải là lập trình viên, bạn có thể mở tệp DBF bằng LibreOffice. Sau khi mở, chỉ cần chọn Lưu dưới dạng từ menu Tệp, sau đó chọn "Văn bản CSV" làm loại tệp. Nếu được nhắc với các tùy chọn nâng cao [dấu phân cách, v.v. ] bạn có thể đặt chúng ở chế độ mặc định
Ghi chú. Excel không thể mở tệp DBF
Nếu bạn là một lập trình viên hoặc cảm thấy thoải mái khi sử dụng dòng lệnh thì phương pháp nhanh hơn là sử dụng in2csv từ bộ công cụ dòng lệnh csvkit. Điều này sẽ đọc tệp DBF và ghi tệp CSV
in2csv filename.dbf > filename.csv
Ghi chú. Bất cứ khi nào chuyển đổi tệp để nhập tệp vào PANDA, bạn cũng nên tải tệp gốc lên dưới dạng tệp có liên quan
Cám ơn vì sự gợi ý. Tôi đã thử tạo một kịch bản. py với nhập sys và sys. con đường. nối và nhập simpledbf rồi đặt nó vào thư mục gốc của dự án, sau đó khởi động lại city Engine.
Thật không may, nó vẫn đưa ra lỗi tương tự khi thực thi cho simpledbf. Tôi cũng đã thử làm myHelper. py và nó cũng không hoạt động [có lẽ giải pháp này dành cho bảng điều khiển Python chứ không phải dành cho tập lệnh. ]
Tôi cũng đã thử di chuyển simpledbf vào thư mục tập lệnh của dự án của mình. Không may mắn
Giải pháp cuối cùng
Trong tập lệnh python của tôi,
Tôi đã thêm các dòng -
import sys
sys.path.append [with the path being my project scripts directory]
from simpledbf import Dbf5
Và sau đó tôi đặt simpledbf. py trong thư mục script đó.
Điều này đã làm việc - tôi có thể đọc các giá trị truy vấn và DBF
Theo như Fiona - tôi muốn sử dụng nó, thật không may, con trăn của City Engine đang sử dụng Jython 2. 7 trong khi Fiona yêu cầu Python 3
dbfpy là một mô-đun chỉ dành cho python để đọc và ghi các tệp DBF. Nó được tạo ra bởi Jeff Kunce và sau đó được sửa đổi bởi Hans Fiby
mã mô-đun dbfpy đã được đặt trong phạm vi công cộng
dbfpy là gì?
dbfpy có thể đọc và ghi các tệp DBF đơn giản. Định dạng DBF được phát triển khoảng 30 năm trước và được sử dụng bởi một số ứng dụng cơ sở dữ liệu đơn giản [dBase, Foxpro, Clipper,. ]. Các kiểu dữ liệu cơ bản số, văn bản ngắn và ngày có sẵn. Nhiều phần mở rộng khác nhau đã được sử dụng;
Nó dùng để làm gì?
- Công dụng quan trọng nhất là đọc các tệp DBF cũ được tạo bởi các chương trình khác
- Các tệp DBF có thể được nhập bởi hầu hết các chương trình xử lý dữ liệu dạng bảng như Excel, Access, v.v. Nếu bạn muốn tạo dữ liệu dạng bảng để nhập vào các chương trình này từ tập lệnh python dbfpy sẽ là một tùy chọn
- Một số chương trình gần đây vẫn sử dụng dbf để lưu trữ dữ liệu. Ứng dụng GIS ArcView là một trong số đó
Không sử dụng dbfpy
nếu bạn cần lưu trữ dữ liệu để sử dụng nội bộ trong chương trình python. dbfpy không cung cấp bất kỳ tính năng nào của ứng dụng cơ sở dữ liệu hiện đại. Sử dụng hệ thống cơ sở dữ liệu như PostgreSQL, Oracle hoặc MySQL để lưu trữ dữ liệu hàng ngày. Dùng SQLite nếu bạn muốn nhẹ
DBF là định dạng tệp được sử dụng bởi các cơ sở dữ liệu như dBase, Visual FoxPro và FoxBase+. Thư viện này đọc các tệp DBF và trả về dữ liệu dưới dạng kiểu dữ liệu Python gốc để xử lý thêm. Nó chủ yếu dành cho các công việc hàng loạt và các tập lệnh một lần
>>> from dbfread import DBF >>> for record in DBF['people.dbf']: .. print[record] OrderedDict[[['NAME', 'Alice'], ['BIRTHDATE', datetime.date[1987, 3, 1]]]] OrderedDict[[['NAME', 'Bob'], ['BIRTHDATE', datetime.date[1980, 11, 12]]]]
Theo mặc định, các bản ghi được truyền trực tiếp từ tệp. Nếu bạn có đủ bộ nhớ, thay vào đó, bạn có thể tải chúng vào danh sách. Điều này cho phép truy cập ngẫu nhiên
>>> table = DBF['people.dbf', load=True] >>> print[table.records[1]['NAME']] Bob >>> print[table.records[0]['NAME']] Alice
Tài liệu đầy đủ tại https. //dbfread. đọcthedocs. io/
Xem tài liệu/thay đổi. đầu tiên để biết danh sách đầy đủ các thay đổi trong mỗi phiên bản
Những đặc điểm chính
được viết cho Python 3, nhưng cũng hoạt động trong 2. 7
API đơn giản nhưng linh hoạt
dữ liệu được trả về dưới dạng kiểu dữ liệu Python gốc
bản ghi là từ điển được sắp xếp, nhưng có thể được cấu hình lại thành bất kỳ loại nào
nhằm mục đích xử lý tất cả các biến thể của tệp DBF. [Hiện chỉ được thử nghiệm rộng rãi với Visual FoxPro, nhưng sẽ hoạt động tốt với các biến thể khác. ]
hỗ trợ cho 18 loại trường. Các loại tùy chỉnh có thể được thêm bằng cách phân lớp FieldParser
đọc các tệp ghi nhớ FPT và DBT, cả dữ liệu văn bản và dữ liệu nhị phân
xử lý tên tệp trường hợp hỗn hợp một cách duyên dáng trên hệ thống tệp phân biệt chữ hoa chữ thường
có thể truy xuất hồ sơ đã xóa
cài đặt
Yêu cầu Python 3. 2 hoặc 2. 7
pip install dbfread
dbfread là một mô-đun Python thuần túy và không phụ thuộc vào bất kỳ gói nào bên ngoài thư viện chuẩn
Để xây dựng tài liệu tại địa phương
python setup.py docs
Điều này đòi hỏi Nhân sư. Các tệp kết quả có thể được tìm thấy trong docs/_build/
Mã nguồn
Bản phát hành ổn định mới nhất. http. //github. com/olemb/dbfread/
phiên bản phát triển. http. //github. com/olemb/dbfread/tree/develop/
Thay đổi API
dbfread. mở[] và dbfread. read[] không được dùng nữa kể từ phiên bản 2. 0 và sẽ bị xóa sau 2. 2
Lớp DBF không còn là lớp con của danh sách. Điều này làm cho API sạch hơn và dễ hiểu hơn, nhưng mã cũ dựa trên hành vi này sẽ bị hỏng. Lặp lại và đếm bản ghi hoạt động giống như trước đây. Các hoạt động danh sách khác có thể được viết lại bằng thuộc tính bản ghi. Ví dụ
table = dbfread.read['people.dbf'] print[table[1]]
có thể được viết lại như
table = DBF['people.dbf', load=True] print[table.records[1]]
open[] và read[] đều trả về DeprecatedDBF, là lớp con của DBF và danh sách, do đó tương thích ngược