import csv import os import glob import psycopg2 # 数据库连接配置信息 db_config = { 'host': 'localhost', # 数据库主机地址 'database': 'test', # 数据库名 'user': 'jack', # 数据库用户名 'password': 'aaaAAA111' # 数据库密码 } # 获取当前目录 current_directory = os.getcwd() # 使用glob模块找到当前目录下所有的CSV文件 csv_files = glob.glob(os.path.join(current_directory, '*.CSV')) # 连接到PostgreSQL数据库 conn = psycopg2.connect(**db_config) cursor = conn.cursor() row_num = 0 # 遍历找到的CSV文件 for file_path in csv_files: print(f'正在读取CSV文件: {file_path}') # 打开CSV文件 with open(file_path, mode='r', newline='', encoding='utf-8') as file: csv_reader = csv.reader(file) # 遍历CSV文件中的每一行 for row in csv_reader: try: # 拆分字段 epc, qrcode = row[0].split(' ', 1) # 插入数据到数据库 insert_query = "INSERT INTO test_sort_epc (epc, qrcode) VALUES (%s, %s);" cursor.execute(insert_query, (epc, qrcode.replace(' ', ''))) print(f'第{row_num+1}行: 数据插入成功。') except ValueError: print(f'第{row_num+1}行: 错误 - 无法将数据拆分为两个字段。') row_num += 1 print(f'一共 {row_num} 行数据') # 提交事务 conn.commit() # 关闭数据库连接 cursor.close() conn.close() print('所有数据已写入数据库, 程序执行完毕')