Python进阶篇:文件系统的操作

通过一个例子来熟悉文件的基本操作:创建文件,读取文件,修改文件,删除文件,重命名文件,判断文件是否存在

  1 ‘‘‘
  2 编写可供查询的员工信息表--学号 姓名  年龄 班级
  3    1. 提供格式化查询接口
  4    2. 允许用户添加或者删除员工信息
  5 ‘‘‘
  6 import os
  7 employee_dir = ‘employee_list‘
  8 index=employee_dir+"/index"
  9
 10
 11 if(not os.path.exists(employee_dir)):
 12     os.mkdir(employee_dir,777)
 13
 14 def add_student(id,name,age,_class):
 15     local_file = employee_dir+"/"+str(id)
 16     if(os.path.isfile(local_file)):
 17         print("id: %s 已经存在,请重新添加" %(id))
 18     else:
 19         f=open(local_file,"w")
 20         f.write(name+"\t"+str(age)+"\t"+_class)
 21         f.close()
 22         f=open(index,"a")
 23         f.write(str(id)+"\t"+name+"\n")
 24         f.close()
 25         print("id=%s添加成功" %id)
 26
 27 def select_student(**kwargs):
 28     for key in kwargs.keys():
 29         if(key==‘id‘):
 30             local_file = employee_dir+"/"+str(kwargs[key])
 31             if(not os.path.isfile(local_file)):
 32                 print("不存在id:",kwargs[key])
 33             else:
 34                 f=open(local_file,"r")
 35                 print(kwargs[key],f.read())
 36         elif(key==‘name‘):
 37             if(not os.path.isfile(index)):
 38                 print("不存在name:",kwargs[key])
 39             else:
 40                 i=0
 41                 f=open(index,"r")
 42                 for line in f.readlines():
 43                     id,name = line.strip().split("\t")
 44                     if(name == kwargs[key]):
 45                         i=i+1
 46                         select_student(id=id)
 47                 if(i==0):
 48                     print("不存在name:",kwargs[key])
 49         else:
 50             print("无效的获取方式,只能通过id和name来获取!")
 51
 52
 53 def modify_student(id,name,age,_class):
 54     local_file = employee_dir+"/"+str(id)
 55     if(os.path.isfile(local_file)):
 56         os.remove(local_file)
 57         rm_line(index,id)
 58         add_student(id,name,age,_class)
 59         print("id=%s修改成功" %id)
 60     else:
 61         print("id: %s 不存在,请先添加" %(id))
 62
 63 def delete_student(**kwargs):
 64     for key in kwargs.keys():
 65         if(key==‘id‘):
 66             local_file = employee_dir+"/"+str(kwargs[key])
 67             if(not os.path.isfile(local_file)):
 68                 print("不存在id:",kwargs[key],",无法删除")
 69             else:
 70                 os.remove(local_file)
 71                 rm_line(index,kwargs[key])
 72                 print("删除id=%s成功" %kwargs[key])
 73         elif(key==‘name‘):
 74             if(not os.path.isfile(index)):
 75                 print("不存在name:",kwargs[key],",无法删除")
 76             else:
 77                 i=0
 78                 f=open(index,"r")
 79                 for line in f.readlines():
 80                     id,name = line.strip().split("\t")
 81                     if(name == kwargs[key]):
 82                         i=i+1
 83                         delete_student(id=id)
 84                 if(i==0):
 85                     print("不存在name:",kwargs[key],",无法删除")
 86         else:
 87             print("无效的删除方式,只能通过id和name来删除!")
 88
 89 def rm_line(file,id):
 90     if(not os.path.isfile(file)):
 91         print("不存在文件:",file)
 92     else:
 93         f= open(file,"r")
 94         of = open(file+".tmp","w")
 95         for line in f.readlines():
 96             localid,localname = line.strip().split("\t")
 97             if(str(id)==localid):
 98                 pass
 99             else:
100                 of.write(line,)
101         f.close()
102         of.close()
103         if(os.path.isfile(file+".tmpt")): os.remove(file+".tmpt")
104         os.rename(file,file+".tmpt")
105         os.rename(file+".tmp",file)
时间: 2024-12-10 18:08:13

Python进阶篇:文件系统的操作的相关文章

python进阶篇

python进阶篇 import 导入模块 sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到. ? import sys ? sys.path.append("") 重新导入模块 ? reload(模块) ==.is a = [11,22,33] b = [11,22,33] >>>a == b True >>>a is b False >>>a = c

Python 进阶篇

作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/articles/5246483.html 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', pass

python基础篇08-文件操作

文件操作基本流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作 关闭文件  现有文件如下: 1 昨夜寒蛩不住鸣. 2 惊回千里梦,已三更. 3 起来独自绕阶行. 4 人悄悄,帘外月胧明. 5 白首为功名,旧山松竹老,阻归程. 6 欲将心事付瑶琴. 7 知音少,弦断有谁听. 对上述文件进行操作: 1 f = open('小重山','r',encoding='utf8') #打开文件,读模式 2 data=f.read()#获取文件内容3 print(data)4 f.close

Python进阶三部曲之IO操作

IO编程 文件读写 打开文件 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 具体需要查看API,这里只介绍几个常用的方法. open函数的文件名是必传参数,返回一个文件对象 #打开一个文件. f = open('read.txt', 'r') open函数的mode参数: 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '

Python进阶篇:Python简单爬虫

目录 前言 要解决的问题 设计方案 代码说明 小结 前言 前一段一直在打基础,已经学习了变量,流程控制,循环,函数这几块的知识点,就想通过写写小程序来实践一下,来加深知识点的记忆和理解.首先考虑的就是爬虫啦,一直很崇拜爬虫大师,特别想能够学习一些爬虫技术,去淘宝上爬爬数据,说不定什么时候可以使用数据进行一些分析,比如哪天自己也开了个小店啥的~~.为了能够开始起步, 我看了一些视频,查阅了一些资料,起步阶段就不用那些很牛逼的框架了,主要是想通过基本的爬虫来了解爬虫的基本概念和思路. 要解决的问题

Python之路【第十七篇】:Django【进阶篇 】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')

Python之路【第十七篇】:Django之【进阶篇】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')

Python基础—面向对象(进阶篇)

通过上一篇博客我们已经对面向对象有所了解,下面我们先回顾一下上篇文章介绍的内容: 上篇博客地址:http://www.cnblogs.com/phennry/p/5606718.html 面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用: 类是一个模版,模板中包装了多个方法供使用(这里方法就是函数): 对象,根据模板创建的实例,实例用于调用被包装在类中的函数: 面向对象的三大特性:封装.继承.多态. 今天博客的内容主要介绍:Python类的成员.成员修饰符.类的特殊成员.异常处理和

Python之路【第十七篇】:Django【进阶篇】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')