def export_remote_database(host, username, password, database, export_folder): # 创建 SSH 客户端 client = paramiko.SSHClient() client.load_system_host_keys() try: # 连接远程主机 client.connect(host, username=username, password=password) # 构建导出 SQL 查询 today = datetime.now().strftime("%Y-%m-%d") export_query = f"SELECT * FROM TableName WHERE DateColumn = '{today}'" # 执行 SQL 查询 with pyodbc.connect(f"DRIVER={{SQL Server}};SERVER={host};DATABASE={database};UID={username};PWD={password}") as conn: df = pd.read_sql_query(export_query, conn) # 生成文件名 export_file = f"{host}.txt" export_path = os.path.join(export_folder, export_file) # 导出数据为 txt 文件 df.to_csv(export_path, index=False, sep="\t", encoding="utf-8") print(f"成功导出数据库 {database} 中的当天数据到 {export_path}") except Exception as e: print(f"导出数据库 {database} 失败:{str(e)}") finally: # 关闭 SSH 连接 client.close()
时间: 2024-04-23 09:24:30 浏览: 109
ftp_server.zip_FTP server client_PocketOBEX_bluetooth_bluetooth
这段 Python 代码是用于连接远程主机的数据库,并将当天的数据导出为 txt 文件。具体实现过程如下:
1. 创建一个 SSH 客户端对象。
2. 连接远程主机,需要提供主机地址、用户名和密码。
3. 构建 SQL 查询语句,查询表 TableName 中当天的数据。
4. 使用 pyodbc 模块连接数据库,并执行查询语句,将查询结果存储在 Pandas 的 DataFrame 中。
5. 生成导出文件名和路径,将 DataFrame 中的数据导出为 txt 文件。
6. 打印导出成功的信息。
7. 如果出现异常,打印导出失败的信息。
8. 关闭 SSH 连接。
需要注意的是,这段代码中使用了 paramiko 和 pyodbc 两个 Python 模块,需要提前安装并导入。同时,还需要在本地机器上安装 SQL Server 驱动程序,才能使用 pyodbc 模块连接数据库。
阅读全文