python过滤sql文件内容_Python 模拟SQL对文件进行增删改查

本文介绍了如何使用Python模拟SQL对文件进行增、删、改、查操作。通过处理输入的SQL命令,实现了对文件内容的筛选、插入、删除和更新功能,支持and、or条件及like模糊匹配。
摘要由CSDN通过智能技术生成

1 #!/usr/bin/env python

2 #_*_ coding:UTF-8 _*_

3 #__auth__: Dalhhin

4 #Python 3.5.2,Pycharm 2016.3.2

5 #2017/05/15

6

7 importsys,os8

9 def where(dbfile,where_list): #条件是一个list

10

11 defand_or_where(sub_where_list):12 '''获取and或同时含有and、or关键字的条件'''

13 and_list =[]14 or_list =[]15 for i insub_where_list:16 if i == 'and':17 and_index =sub_where_list.index(i)18 and_list_temp1 =sub_where_list[:and_index]19 and_list_temp2 = sub_where_list[and_index + 1:]20 if 'or' inand_list_temp1:21 and_list.append(and_list_temp2)22 or_index = and_list_temp1.index('or')23 or_list.append(and_list_temp1[:or_index])24 and_list.append(and_list_temp1[or_index + 1:])25 break

26 if 'or' inand_list_temp2:27 and_list.append(and_list_temp1)28 or_index = and_list_temp2.index('or')29 and_list.append(and_list_temp2[:or_index])30 or_list.append(and_list_temp2[or_index + 1:])31 break

32 and_list.append(and_list_temp1)33 and_list.append(and_list_temp2)34 returnand_list,or_list35

36 defor_where(sub_where_list):37 '''获取只有or条件下的关键字条件'''

38 if len(sub_where_list) > 4:39 or_list =[]40 or_str_temp1 = ' '.join(sub_where_list)41 or_list_temp2 = or_str_temp1.split('or')42 for or_info inor_list_temp2:43 or_list.append(or_info.split())44 return 'or',or_list45 else:46 return 'or',sub_where_list47

48 defand_where(sub_where_list):49 '''获取只有and条件下的关键字条件'''

50 and_list =[]51 and_str = ' '.join(sub_where_list)52 and_list_temp = and_str.split('and')53 for and_info inand_list_temp:54 and_list.append(and_info.split())55 return 'and',and_list56

57 defnot_and_or_where(sub_where_list):58 '''获取无and和or关键字的时候的条件'''

59 par_list =[]60 par_list.append(sub_where_list)61 returnNone,par_list62

63 defnot_and_or_data(where_list):64 '''获取没有and和or条件时匹配到的数据'''

65 where_tiaojian = not_and_or_where(where_list) #交给函数处理,得到处理后的 条件元组

66 if 'not' not in where_tiaojian[1][0]: #当条件没有not关键字的时候

67 field_name, mark, value = where_tiaojian[1][0] #不取反那么就获取条件的字段,运算符,值

68 match_data = [] #用于存放匹配的数据,最后进行展示

69 with open(dbfile, encoding='UTF-8') as fd:70 for user_info infd:71 user_id, user_name, user_age, user_phone, user_job, user_date = user_info.strip().split(',')72 if field_name == 'id': #读取文件的每一行,判断条件的字段是否是id

73 if mark != '=': #不取反

74 if eval('%s %s %s' % (user_id, mark, value)): #针对条件字段,进行数据的过滤

75 match_data.append(user_info) #存储匹配的数据

76 continue

77 else:78 if user_id ==value:79 match_data.append(user_info)80 continue

81 elif field_name == 'age':82 if mark != '=':83 if eval('%s %s %s' %(user_age, mark, value)):84 match_data.append(user_info)85 continue

86 else:87 if user_age ==value:88 match_data.append(user_info)89 continue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
### 回答1: Python可以利用相应的库和模块对 SQL Server 进行增删改查操作。具体流程包括:连接 SQL Server 数据库、执行 SQL 语句、处理查询结果、提交修改等。常用的库和模块有 PyODBC、pymssqlsqlalchemy 等。具体操作可参考相关的 PythonSQL Server 资料和文档。 ### 回答2: Python是一种高级编程语言,常用于数据分析、机器学习、人工智能等领域。而SQL Server是一种关系型数据库管理系统,常用于存储和管理大量结构化数据。将PythonSQL Server结合使用,可以进行非常方便的数据处理和管理。下面将分别介绍PythonSQL Server的增删改查操作。 1. 增加数据 使用Python操作SQL Server添加数据非常简单。首先,我们需要使用pyodbc库连接到SQL Server数据库。然后,我们可以使用SQL INSERT语句添加数据。以下是一个示例: import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=SERVER_NAME;' 'Database=DATABASE_NAME;' 'Trusted_Connection=yes;') cursor = conn.cursor() sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)" params = ('value1', 'value2', 'value3') cursor.execute(sql, params) conn.commit() 这个示例中,我们首先使用pyodbc库连接到SQL Server数据库,并创建一个游标。“table_name”是我们要添加数据的表的名称,而“column1”、“column2”和“column3”是表中的列名。我们使用VALUES子句指定要添加的数据值。在这里,我们使用参数化查询来避免SQL注入攻击。 2. 删除数据 从SQL Server数据库中删除数据也很简单。以下是一个删除数据的示例: import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=SERVER_NAME;' 'Database=DATABASE_NAME;' 'Trusted_Connection=yes;') cursor = conn.cursor() sql = "DELETE FROM table_name WHERE id = ?" params = ('1',) cursor.execute(sql, params) conn.commit() 该示例中,我们使用SQL DELETE语句从“table_name”表中删除id为1的行。我们同样使用参数化查询进行处理。 3. 更新数据 更新数据同样也很简单。以下是一个更新数据的示例: import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=SERVER_NAME;' 'Database=DATABASE_NAME;' 'Trusted_Connection=yes;') cursor = conn.cursor() sql = "UPDATE table_name SET column1 = ?, column2 = ? WHERE id = ?" params = ('new_value1', 'new_value2', '1') cursor.execute(sql, params) conn.commit() 该示例中,我们使用SQL UPDATE语句将“table_name”表中id为1的行的“column1”和“column2”列的值更新为“new_value1”和“new_value2”。 4. 查询数据 最后是查询数据,这是操作SQL Server数据库最常见的操作之一。以下是一个查询数据的示例: import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=SERVER_NAME;' 'Database=DATABASE_NAME;' 'Trusted_Connection=yes;') cursor = conn.cursor() sql = "SELECT * FROM table_name WHERE id = ?" params = ('1',) cursor.execute(sql, params) for row in cursor: print(row) 该示例中,我们使用SQL SELECT语句查询“table_name”表中id为1的行。最后使用for循环遍历结果集并打印出来。 综上所述,使用PythonSQL Server进行增删改查非常简单。在Python中,我们可以使用pyodbc库连接到SQL Server数据库,并使用SQL语句进行各种操作。这使得在Python应用程序中处理和管理SQL Server数据库变得非常方便。 ### 回答3: Python是一种高级编程语言,可轻松与SQL Server数据库集成。使用Python和pyodbc库可以执行多种SQL Server数据库操作,例如: 1. 连接到SQL Server数据库:使用pyodbc库中的connect()方法可以连接到SQL Server数据库。 ```python import pyodbc cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=DESKTOP-XXXX\SQLSERVER2016;' 'Database=myDatabase;' 'Trusted_Connection=yes;') ``` 2. 查询SQL Server数据库:要查询SQL Server数据库中的数据,可以使用execute()方法,可以通过查询字符串或使用参数化查询。 ```python import pyodbc cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=DESKTOP-XXXX\SQLSERVER2016;' 'Database=myDatabase;' 'Trusted_Connection=yes;') cursor = cnxn.cursor() cursor.execute('SELECT * FROM myTable') for row in cursor: print(row) ``` 3. 插入数据到SQL Server数据库:可以使用execute()方法与参数化SQL语句将数据插入到SQL Server数据库中。 ```python import pyodbc cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=DESKTOP-XXXX\SQLSERVER2016;' 'Database=myDatabase;' 'Trusted_Connection=yes;') cursor = cnxn.cursor() insert_query = 'INSERT INTO myTable (name, age) VALUES (?, ?)' cursor.execute(insert_query, ('John', 25)) cnxn.commit() ``` 4. 更新SQL Server数据库中的数据:使用execute()方法可以更新SQL Server数据库中的数据。 ```python import pyodbc cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=DESKTOP-XXXX\SQLSERVER2016;' 'Database=myDatabase;' 'Trusted_Connection=yes;') cursor = cnxn.cursor() update_query = 'UPDATE myTable SET age=? WHERE name=?' cursor.execute(update_query, (30, 'John')) cnxn.commit() ``` 5. 从SQL Server数据库中删除数据:使用execute()方法可以从SQL Server数据库中删除数据。 ```python import pyodbc cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=DESKTOP-XXXX\SQLSERVER2016;' 'Database=myDatabase;' 'Trusted_Connection=yes;') cursor = cnxn.cursor() delete_query = 'DELETE FROM myTable WHERE name=?' cursor.execute(delete_query, ('John',)) cnxn.commit() ``` 总之,Python结合pyodbc库可以方便地对SQL Server数据库进行增删改查操作,从而对数据进行操作和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值