PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tập lệnh Python để nhập một tệp hình dạng vào cơ sở dữ liệu PostgreSQL / PostGIS bằng cách sử dụng shp2pgsql.exe trên windows

Dưới đây là một số sửa đổi sẽ làm cho mọi thứ hoạt động. Lưu ý rằng nó sẽ cần sửa đổi thêm nếu bạn cần được thông báo nếu bất kỳ lệnh nào không thành công. Lưu ý rằng nó sẽ không thành công cho nhiều tệp hình dạng, vì một new_shp_table bảng sẽ tồn tại cho đến khi bạn có thêm logic để di chuyển hoặc đổi tên bảng đó ở nơi khác hoặc tải nó bằng một tên duy nhất.

Ngoài ra, hãy lưu ý rằng PostgreSQL 8.4 sẽ hết hạn sử dụng vào cuối năm nay, vì vậy bạn có thể muốn lên kế hoạch nâng cấp lên bản phát hành mới hơn trước khi quá muộn.

import os, subprocess

# Choose your PostgreSQL version here
os.environ['PATH'] += r';C:\Program Files (x86)\PostgreSQL\8.4\bin'
# http://www.postgresql.org/docs/current/static/libpq-envars.html
os.environ['PGHOST'] = 'localhost'
os.environ['PGPORT'] = '5432'
os.environ['PGUSER'] = 'someuser'
os.environ['PGPASSWORD'] = 'clever password'
os.environ['PGDATABASE'] = 'geometry_database'

base_dir = r"c:\shape_file_repository"
full_dir = os.walk(base_dir)
shapefile_list = []
for source, dirs, files in full_dir:
    for file_ in files:
        if file_[-3:] == 'shp':
            shapefile_path = os.path.join(base_dir, file_)
            shapefile_list.append(shapefile_path)
for shape_path in shapefile_list:
    cmds = 'shp2pgsql "' + shape_path + '" new_shp_table | psql '
    subprocess.call(cmds, shell=True)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để xác định một hằng số được đặt tên trong một truy vấn PostgreSQL không?

  2. Rails 5:nhóm các bản ghi theo trường DateTime trong dạng xem dạng cây

  3. Thiết lập chính nước ngoài với kiểu dữ liệu khác nhau

  4. Cách phù hợp để làm việc với kết quả phát trực tuyến 3.0.0 của slick và Postgresql là gì?

  5. Hiệu suất của Delta E (CIE Lab) tính toán và sắp xếp trong SQL