使用Python与pymssql将txt文本去掉表头后循环放入Sqlserver名为TEST_list的表内,写入时判断内容是否已存在表内,如果存在就不用在存,表的内容有ID,PLANTCODE,SN,ITEM,MODEL几个栏位
时间: 2023-10-15 16:05:37 浏览: 44
好的,我明白了您的问题。首先,我们需要读取txt文本并去掉表头,可以使用以下代码:
```python
import pymssql
# 连接数据库
conn = pymssql.connect(server='server_name', user='username', password='password', database='database_name')
# 打开文件并去掉表头
with open('data.txt', 'r') as f:
lines = f.readlines()[1:]
# 循环插入数据
for line in lines:
data = line.strip().split('\t')
id = data[0]
plantcode = data[1]
sn = data[2]
item = data[3]
model = data[4]
# 判断数据是否已存在
cursor = conn.cursor()
cursor.execute("SELECT COUNT(*) FROM TEST_list WHERE SN = %s", sn)
if cursor.fetchone()[0] == 0:
# 插入新数据
cursor.execute("INSERT INTO TEST_list (ID, PLANTCODE, SN, ITEM, MODEL) VALUES (%s, %s, %s, %s, %s)", (id, plantcode, sn, item, model))
conn.commit()
# 关闭数据库连接
conn.close()
```
其中,`server_name`、`username`、`password`、`database_name`需要替换为实际的数据库服务器名称、用户名、密码和数据库名称,`data.txt`为数据存储的文本文件,包含表头和数据。代码中使用`strip()`方法去掉每行数据的换行符,使用`split('\t')`方法按制表符分割每行数据,得到各字段的值。然后使用SQL语句判断数据是否已存在表内,如果不存在则插入新数据。最后,记得关闭数据库连接。