首页 > 编程语言 >python之实现文件增删改查操作

python之实现文件增删改查操作

时间:2024-01-25 14:46:25浏览次数:32  
标签:utf encoding python age 改查 dept 增删 open id

实现文件增删改查操作                

1.写入文件

'''以w形式打开文件,写入记录'''

1 #!/usr/bin/python
2 with open('test','w',encoding='utf-8') as f:
3     '''插入数据'''
4     f.writelines('1,Alex Li,22,13651054608,IT,2013-04-01\n')
5     f.writelines('2,chao zi,30,17886999022,HR,2015-05-03\n')
6     f.writelines('3,rain li,25,13832353221,Sales,2016-04-22\n')
7     f.writelines('4,mack ci,40,13456789876,HR,2009-03-01\n')
8     f.flush()
View Code

2.根据需求查询内容

  • 根据年龄查询比输入年龄大的内容
  • 查询输入部门的记录
  • 根据年份查询记录
  • 显示查询的记录条数
 1 def search_text():
 2    '''#select name,age from staff_table where age > 22'''
 3    global age, dept, year
 4    choice= input('请选择进入哪个查询:年龄,部门,年份')
 5    if choice =='年龄':
 6         age =int(input('请输入年龄:'))
 7         search_age()
 8    elif choice=='部门':
 9        dept =input('请输入部门')
10        search_dept()
11    elif choice=='年份':
12         year =input('请输入年份')
13         search_year()
14    else:
15         print('请输入正确的值')
16 def search_age():
17     '''select  * from staff_table where dept = "IT"'''
18     with open('test','r+',encoding='utf-8') as f:
19         n=0
20         for i in f:
21             x=i.split(',')
22             if int(x[2]) >age:
23                 print('大于%s岁的是%s年龄是%s'%(age,x[1],x[2]))
24                 n+=1
25         print('共找到%s条数据'%n)
26 
27 def search_dept():
28     '''#select  * from staff_table where dept = "IT"'''
29     with open('test','r+',encoding='utf-8') as f:
30         n=0
31         for i in f:
32             x=i.split(',')
33             if x[4] ==dept:
34                 print('在%s部门的是'%dept,i)
35                 n+=1
36         print('共找到%s条数据' % n)
37 
38 
39 def search_year():
40     '''#select  * from staff_table where enroll_date like "2013"'''
41     with open('test','r+',encoding='utf-8') as f:
42         n=0
43         for i in f:
44             x=i.split(',')
45             # print(x[5].startswith('2013'))
46             if x[5].startswith(year)==True:
47                 print(i)
48                 n+=1
49         print('共找到%s条数据' % n)
50 
51 
52 search_text()
View Code

3.新增记录,要求phone唯一,并且id自增

  • phone唯一:要求比较文件里面的phone,判断是否存在,不存在则新增
  • id自增:取文件里面id最大的值,在基础上加1
 1 def insert_line(name,age,phone,dept,date):
 2     '''可创建新员工纪录,以phone做唯一键,staff_id需自增wi'''
 3     status =True
 4     with open('test','r+',encoding='utf-8') as f:
 5         id=[]
 6         for i in f:
 7             x=i.split(',')
 8             if x[4] ==phone:
 9                 status=False
10             id.append(x[0])
11         if status==True:
12          f.writelines('%s,%s,%s,%s,%s,%s'%(int(max(id))+1,name,age,phone,dept,date))
13 insert_line('zhang yun','22','17002991187','IT','2024-01-25')
View Code

 

4.根据id删除记录

  • 删除记录:读取原来的文件到新文件,如果是输入id则不写入到新文件
 1 def del_line(id):
 2     '''输入id删除该id的记录'''
 3     with open('test','r+',encoding='utf-8') as f ,\
 4         open('test1', 'w+', encoding='utf-8') as f1:
 5         for i in f:
 6             x=i.split(',')
 7             if id ==int(x[0]):
 8                 continue
 9             else :
10                 f1.writelines(i)
11 
12 del_line(2)
View Code

5.修改信息

  • 同删除记录(同样是修改文件):读取原来的文件到新文件,如果遇到需要修改的内容,则替换为新内容再写入到新文件
 1 def update_line(dept_old,dept_new):
 2     '''UPDATE staff_table SET dept="Market" WHERE where dept = "IT"'''
 3     with open('test','r+',encoding='utf-8')as f,open('test2','w+',encoding='utf-8')as f1:
 4         for i in f:
 5             x=i.split(',')
 6             if x[4]==dept_old:
 7                 i=i.replace(dept_old,dept_new)
 8             f1.writelines(i)
 9 
10 
11 
12 update_line('IT','Market')
View Code

 

标签:utf,encoding,python,age,改查,dept,增删,open,id
From: https://www.cnblogs.com/Little-Girl/p/17987105

相关文章

  • 【Python爬虫】爬虫基础
    爬虫是什么爬虫介绍爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种......
  • python自动匹配文本
    在数据驱动的世界里,文本处理已经成为Python的一项至关重要的能力。Python以其强大的库支持,从简单的字符串搜索到复杂的模式匹配。本文将逐一展示如何使用Python进行有效的文本匹配。正则表达式说到文本匹配,正则表达是一个锋利的工具。Python内置的re模块就是为了这个目的而诞生......
  • python 翻页功能
    python翻页功能在django框架下使用fromdjango.core.paginatorimportPaginator#数据集合data=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]per_datas=5#每页显示的数量#创建Paginator对象paginator=Paginator(data,per_datas)#获取......
  • 计网笔记:python实现简单的UDP/TCP代码
    初学计网,同时也是第一次写blog,若有不妥之处请多多包涵......
  • 用python实现部分代码内容替换的功能(用关键字实现)
    具体实现方法先将exl表格中的数据提取出来存放到list中,再根据文件中对应部分的需求和结构来构造函数去生成相应部分的c语言代码,然后通过readlines函数扫描原本的文件,按行复制到新的文件中,在识别到开始关键字的时候停止复制,开始调用构造的函数去生成新的代码写入新的文件中,然后在......
  • 双端队列(deque)--python
    Python中的双端队列(deque)是一种特殊的数据结构,它允许在队列的两端进行插入和删除操作12。双端队列可以看成栈和队列的结合3。在Python中,我们可以使用collections模块中的deque类来创建双端队列12。下面是一些常用的操作方法1:Python`fromcollectionsimportdeque`#创建一个......
  • [Python] 基于RapidFuzz库实现字符串模糊匹配
    RapidFuzz是一个用于快速字符串模糊匹配的Python库,它能够快速计算两个字符串之间的相似度,并提供与Fuzzywuzzy(已停用)和TheFuzz(Fuzzywuzzy的升级版)类似的接口。RapidFuzz和TheFuzz功能相似,只是提供的接口不同。RapidFuzz和TheFuzz安装指令如下:pipinstallrapidfuzzpipinstallth......
  • python中(“{}{}{}”.format(i,j,k))的理解
    “{}{}{}”.format(i,j,k)笼统的来说是字符串的格式化字符串中有一些可以被替换掉的占位符,而格式化的过程就是对这些占位符替换的过程,举例来说:1“Iama{}”.format("student")它表示将字符串"Iama{}"进行格式化,格式化的结果就是该字符串中的占位符{}被format()函数中的参......
  • Python requests模块POST提交请求,不同Content-type对应的参数示例
    1.'content-type':'application/x-www-form-urlencoded'data参数提交文本或字典都可以headers为空时,data提交content-type默认也是application/x-www-form-urlencodedrequests.post(url,headers={'content-type':'application/x-www-form-urlencoded'}......
  • python中for循环及用法详解
    1、for循环for循环的语法格式如下:1for迭代变量in字符串|列表|元祖|字典|集合:2代码块迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;2、用法2.1、for循环遍历数值1print("计算1+2+3+...+100的结果为:")2sum=0......