为什么以下代码会提示消息 “import”附近有语法错误。关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。 import pyodbc import os # 连接数据库B conn = pyodbc.connect('DRIVER={SQL Server};SERVER=3F-A36\ZIYUN;DATABASE=语料匹配清单.db.b;UID=abcd;PWD=abcd') # 查询是否已存在相同数据 cursor = conn.cursor() query = "SELECT * FROM TableName WHERE FilePath = 'C:\\Users\\icd\\Desktop\\A.txt'" cursor.execute(query) if cursor.fetchone() is None: # 读取文件内容 with open(r'C:\Users\icd\Desktop\A.txt', 'r') as f: content = f.read() # 插入数据 insert_query = "INSERT INTO TableName (ID, SerialNumber, FilePath, Content) VALUES (?, ?, ?, ?)" cursor.execute(insert_query, (id, serial_number, 'C:\\Users\\icd\\Desktop\\A.txt', content)) conn.commit() # 删除文件 os.remove(r'C:\Users\icd\Desktop\A.txt') # 关闭连接 cursor.close() conn.close()
时间: 2023-10-07 07:10:26 浏览: 77
这段代码会提示语法错误的原因是,在Python中with语句必须要有缩进。在这里,with语句的下一行缩进不正确,导致了语法错误的提示。
正确的代码示例:
```python
import pyodbc
import os
# 连接数据库B
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=3F-A36\ZIYUN;DATABASE=语料匹配清单.db.b;UID=abcd;PWD=abcd')
# 查询是否已存在相同数据
cursor = conn.cursor()
query = "SELECT * FROM TableName WHERE FilePath = 'C:\\Users\\icd\\Desktop\\A.txt'"
cursor.execute(query)
if cursor.fetchone() is None:
# 读取文件内容
with open(r'C:\Users\icd\Desktop\A.txt', 'r') as f:
content = f.read()
# 插入数据
insert_query = "INSERT INTO TableName (ID, SerialNumber, FilePath, Content) VALUES (?, ?, ?, ?)"
cursor.execute(insert_query, (id, serial_number, 'C:\\Users\\icd\\Desktop\\A.txt', content))
conn.commit()
# 删除文件
os.remove(r'C:\Users\icd\Desktop\A.txt')
# 关闭连接
cursor.close()
conn.close()
```
需要注意的是,代码示例中的参数需要根据实际情况进行修改,比如服务器名、数据库名、表名、用户名、密码、ID、流水号等。同时,还需要确保文件A.txt存在且可读,并且数据库B中已经创建了对应的表和字段。
阅读全文