自动将上传到FTP目录的csv文件导入MySQL数据库的方法
时间: 2024-05-05 10:19:52 浏览: 207
cucmlogs:将Communications Manager 10.5 cdr日志导入到mysql中
可以使用Python编写一个脚本来自动将上传到FTP目录的csv文件导入MySQL数据库。以下是主要步骤:
1. 首先,需要安装ftplib库和pymysql库来连接FTP和MySQL数据库。
2. 连接FTP服务器,使用ftplib库下载csv文件到本地。
3. 使用pandas库读取csv文件,将数据转换为DataFrame格式。
4. 使用pymysql库连接MySQL数据库,并将DataFrame数据导入到MySQL数据库中。
5. 最后,删除FTP服务器上已经导入到MySQL数据库中的csv文件。
以下是一个Python脚本的示例代码:
```python
import ftplib
import os
import pandas as pd
import pymysql
# FTP服务器信息
ftp_server = "ftp.example.com"
ftp_username = "username"
ftp_password = "password"
ftp_remote_path = "/csv_files/"
# MySQL数据库信息
mysql_host = "localhost"
mysql_port = 3306
mysql_username = "root"
mysql_password = "password"
mysql_database = "database_name"
mysql_table = "table_name"
# 连接FTP服务器并下载文件
ftp = ftplib.FTP(ftp_server)
ftp.login(ftp_username, ftp_password)
ftp.cwd(ftp_remote_path)
file_list = ftp.nlst()
for file_name in file_list:
if file_name.endswith(".csv"):
local_file_path = os.path.join(os.getcwd(), file_name)
with open(local_file_path, "wb") as local_file:
ftp.retrbinary("RETR " + file_name, local_file.write)
# 将csv文件导入到MySQL数据库中
df = pd.read_csv(local_file_path)
conn = pymysql.connect(host=mysql_host, port=mysql_port, user=mysql_username, password=mysql_password, database=mysql_database)
cursor = conn.cursor()
for index, row in df.iterrows():
sql = f"INSERT INTO {mysql_table} (col1, col2, col3) VALUES ('{row['col1']}', '{row['col2']}', '{row['col3']}')"
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
# 删除FTP服务器上已经导入到MySQL数据库中的csv文件
ftp.delete(file_name)
os.remove(local_file_path)
ftp.quit()
```
其中,需要根据实际情况修改FTP服务器信息、MySQL数据库信息和CSV文件的列名和数据类型。
阅读全文