当前位置: 首页 > news >正文

【Postgres_Python】使用python脚本批量创建和导入多个PG数据库

之前批量创建和导入数据库分为2个python脚本进行,现整合优化代码合并为一个python脚本,可同步实现数据库的创建和数据导入。之前的文章链接:

【Postgres_Python】使用python脚本批量创建PG数据库
【Postgres_Python】使用python脚本将多个.SQL文件批量导入不同的PG数据库

示例代码说明:

有多个.sql格式的数据库需要导入,数据库名与文件名一致。 先判断服务器中数据库是否存在,若存在则删除,创建数据库,导入SQL文件内容

import psycopg2
import subprocess
import os
folder_path = 'E:/Dataset/chongqinghq/'
# 获取文件夹下所有文件和文件夹的名称
filenames = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
# 遍历文件列表并以.提取名称
for filename in filenames:name_parts = filename.split('.')if name_parts:# 提取第一部分作为提取的名称,创建的数据库名称database_name = name_parts[0]username = 'postgres'password = 'postgres'host = 'localhost'port = '5432'output_file = folder_path + filenameos.environ['PGPASSWORD'] = passwordtry:#数据库存在则删除数据库commanddelete = f'D:/Program Files/PostgreSQL/10/bin/psql -h {host} -p {port} -U {username}  -c "DROP DATABASE IF EXISTS {database_name}"'subprocess.run(commanddelete, check=True)print(f"Database {database_name} dropped successfully.")# 创建数据库commandcreate = f'D:/Program Files/PostgreSQL/10/bin/psql -h {host} -p {port} -U {username}  -c "create database {database_name}"'subprocess.run(commandcreate, check=True)print(f"Database {database_name} successfully create")# 导入数据库commandimport = f'D:/Program Files/PostgreSQL/10/bin/psql -h {host} -p {port} -U {username} -d {database_name} -f {output_file}'subprocess.run(commandimport, check=True)print(f"Database {database_name} on host {host} and port {port} successfully created and imported")finally:# 清除环境变量以防止密码泄露del os.environ['PGPASSWORD']

结果示例:

相关文章:

【Postgres_Python】使用python脚本批量创建和导入多个PG数据库

之前批量创建和导入数据库分为2个python脚本进行,现整合优化代码合并为一个python脚本,可同步实现数据库的创建和数据导入。之前的文章链接: 【Postgres_Python】使用python脚本批量创建PG数据库 【Postgres_Python】使用python脚本将多个.S…...

Ubuntu安装GitLab

在 Ubuntu 上安装 GitLab 的步骤如下。这里以 GitLab Community Edition(CE)为例: 前提条件 确保你的 Ubuntu 系统是 20.04 或更高版本。确保你的系统满足 GitLab 的硬件要求。 步骤 更新系统包: sudo apt update sudo apt upg…...

网络知识小科普--5

81、什么是组播路由? 组播路由是一种有针对性的广播形式,将消息发送到所选择的用户组,而不是将其发送到子网上的所有用户。 82、加密在网络上的重要性是什么? 加密是将信息转换成用户不可读的代码的过程。然后使用秘密密钥或密码将其翻译或解密回其…...

JavaScript学习记录23

第十一节 JSON对象 1. JSON 格式 JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。 相比 XML 格式,JSON 格式有两个显…...

VScode 开发 Springboot 程序

1. 通过maven创建springboot程序 输入 mvn archetype:generate 选择模板,一般默认选择为第 7 种方式; 选择之后,一般要你填写如下内容: groupId: 组织名称;artifactId: 项目名称;version: 版本&#xff0…...

.git/hooks/post-merge 文件的作用

.git/hooks/post-merge 文件是 Git 版本控制系统中的一个钩子(hook)脚本,其作用是在合并(merge)操作完成后自动执行一些特定的操作。以下是关于 .git/hooks/post-merge 文件作用的详细解释: 作用 自动化任…...

Kafak 单例生产者实现-C#操作

前面写了一篇入门操作的文章,因为工作需要,简单修改了下如何实现单例生产者。 Kafka入门-C#操作_c# kafka-CSDN博客文章浏览阅读1.6k次,点赞20次,收藏9次。2).报错:“kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state…...

Cursor开发前端的详细过程

以下是使用 Cursor 开发前端的详细过程: 一、创建项目 打开 Cursor 并新建项目: 启动 Cursor 编辑器。点击 “File” 菜单,选择 “New Project”。在弹出的对话框中,输入项目名称,如 “MyFrontendProject”&#xff0…...

基于微信小程序的移动学习平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

atheris从安装到fuzz输入输出解读

1. 引入 模糊测试是一种自动化的软件测试技术,它通过自动生成大量随机数据作为输入来测试程序,以发现潜在的错误、漏洞或崩溃。atheris是一个专门用于CPython(Python的C语言实现)的模糊测试框架。 2. 安装atheris 参考1&#x…...

「 机器人 」系统辨识实验浅谈

前言 系统辨识实验是一种通过实验和数据分析的方法,用于建立物理系统的数学模型的技术。系统辨识是控制工程和系统科学中的重要环节,尤其是在模型未知或复杂的情况下。以下是系统辨识实验的详细介绍: 1. 系统辨识实验的目的 1.1 建模 为动态系统(如机械系统、电气系统或生…...

基于Flask的哔哩哔哩评论数据可视化分析系统的设计与实现

【Flask】基于Flask的哔哩哔哩评论数据可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统可以搜索查看作者、播放量、评论等相关信息,并将相关的分析…...

[央企大赛 2025] pwn

拿到堆附件,不清楚哪个是密码哪个是pwn,找到两个pwn,一个RSA密码相对简单(已知e,d,N,直接用N解出k((ed-1)//phi_N(ed-1)//N^2),然后求pq,而phi_N正好是pq的2次方程)。就只复现了两个pwn,感觉还有…...

C语言初阶--折半查找算法

目录 练习1:在一个有序数组中查找具体的某个数字n 练习2:编写代码,演示多个字符从两端移动,向中间汇聚 练习3:简单编写代码实现,模拟用户登录情景,并且只能登录三次 练习4:猜数字…...

Python!从0开始学爬虫:(一)HTTP协议 及 请求与响应

前言 爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。 今天的HTTP协议,会有助于我们更好的了解网络。 一、什么是HTTP协议 (1)定义 HTTP(超文本传输协议&#xff…...

[ Spring ] Spring Cloud Gateway 2025 Comprehensive Overview

文章目录 Spring Gateway ArchitectureProject Level DependencyService CenterService ProviderGateway ServiceLaunch All Service Spring Gateway Architecture Service Center : register and find service providerService Provider : programs that provide actual serv…...

【项目初始化】自定义异常处理

我们在项目初始化的工作之一就是要自定义异常处理,用来处理项目中出现的各种异常,如业务异常、系统异常等等。 这些属于项目的通用基础代码,在任何后端中都可以复用。 1. 自定义错误码 自定义错误码,对错误进行收敛,…...

Windows10安装MySQL找不到MSVCR120.dll和MSVCP120.dll问题解决

个人博客地址:Windows10安装MySQL找不到MSVCR120.dll和MSVCP120.dll问题解决 | 一张假钞的真实世界 msvcp120.dll、msvcr120.dll、vcomp120.dll属于VC2013版中的动态链接库,如果丢失重新安装VC2013即可。下载地址:https://www.microsoft.com…...

【嵌入式】总结——Linux驱动开发(三)

鸽了半年,几乎全忘了,幸亏前面还有两篇总结。出于快速体验嵌入式linux的目的,本篇与前两篇一样,重点在于使用、快速体验,uboot、linux、根文件系统不作深入理解,能用就行。 重新梳理一下脉络,本…...

计算机图形学:实验三 光照与阴影

一、程序功能设计 设置了一个3D渲染场景,支持通过键盘和鼠标控制交互,能够动态调整光源位置、物体材质参数等,具有光照、阴影和材质效果的场景渲染。 OpenGL物体渲染和设置 创建3D物体:代码中通过 openGLObject 结构体表示一个…...

MiniCPM-o-4.5-nvidia-FlagOS处理Markdown文档效果:使用Typora风格进行优雅排版

MiniCPM-o-4.5-nvidia-FlagOS处理Markdown文档效果:使用Typora风格进行优雅排版 不知道你有没有过这样的经历:辛辛苦苦写了一大堆技术笔记,代码片段、命令、思路混杂在一起,过几天自己再看,都感觉像在看天书。或者&…...

保姆级教程:在绿联NAS上用Docker Compose一键部署PaddleOCR,打造本地私有化OCR服务

绿联NASDocker Compose极简部署PaddleOCR:零命令行打造私有文字识别服务 家里堆积如山的合同发票需要电子化?团队内部敏感文档不敢用云端OCR?绿联NAS用户现在可以抛开复杂命令,用Docker Compose三分钟搭建企业级文字识别服务。本文…...

AndroidTVLauncher自定义功能卡片开发:FunctionCardPresenter实现原理与实践

AndroidTVLauncher自定义功能卡片开发:FunctionCardPresenter实现原理与实践 【免费下载链接】AndroidTVLauncher This is a leanback style tv launcher(minSdkVersion 17) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidTVLauncher AndroidTVLaunch…...

DAMOYOLO-S实战教程:对接企业OA系统实现图片自动审核与标注

DAMOYOLO-S实战教程:对接企业OA系统实现图片自动审核与标注 1. 引言:从手动审核到智能自动化的跨越 想象一下这个场景:你是一家电商公司的运营,每天有上千张商品图片需要上传到后台。按照公司规定,每张图片都需要人工…...

轨道桥梁与列车这对CP,到底怎么互相伤害

车桥耦合动力学模型,轮轨耦合动力学模型,采用二自由度列车模型,可以改为FF梁SF梁,采用德国轨道谱,采用积分算法,可以输出桥梁任意位置的响应。玩轨道桥梁动力学的老铁们都知道,车桥耦合这玩意儿…...

避坑指南:STM32输入捕获测量PWM时,如何处理计数器溢出的3种方案

STM32输入捕获测量PWM时的计数器溢出处理方案实战解析 在嵌入式系统开发中,精确测量PWM信号的频率和占空比是常见需求。STM32系列微控制器的输入捕获功能为此提供了硬件支持,但当PWM周期较长或测量高分辨率信号时,定时器计数器(CNT)溢出问题往…...

TikTok GMXMAX广告优化全攻略

在2026年,TikTok广告投放逐渐向自动化模型演进,其中GMX MAX(GMV Max)成为很多团队用来提升ROI和放量的重要方式。相比传统广告模式,它可以自动完成受众匹配与预算分配,减少大量人工干预。不过在实际操作中&…...

别再只盯着GPS了!手把手教你用Python仿真UWB定位,30厘米精度是怎么来的?

用Python仿真UWB定位:从纳秒脉冲到30厘米精度的全流程解析 在室内导航、工业自动化或仓储物流等领域,定位精度直接决定了系统性能的上限。传统GPS在开阔地带表现优异,但一旦进入室内环境,其信号衰减和多径效应会导致定位误差急剧…...

SDMatte效果可视化对比:传统U-Net抠图 vs SDMatte+,玻璃反光/薄纱透光细节放大评测

SDMatte效果可视化对比:传统U-Net抠图 vs SDMatte,玻璃反光/薄纱透光细节放大评测 1. 评测背景与目标 在电商设计、影视后期和平面制作领域,高质量图像抠图一直是刚需。传统U-Net架构虽然能完成基础的主体分离,但在处理玻璃器皿…...

Z-Image-Turbo-辉夜巫女项目实战:基于C语言的简单调用示例

Z-Image-Turbo-辉夜巫女项目实战:基于C语言的简单调用示例 1. 引言 你可能觉得,AI模型调用是Python、JavaScript这些高级语言的专利,C语言这种“古老”的系统级语言,似乎和时髦的AI应用隔着一道墙。但事实并非如此。AI模型通过H…...