-
流操作
''' with open() as 名字: 相关的流操作 只要缩进内容不结束则流也不会结束 ''' with open('../files/a1.txt', mode='rt') as read_stream: # 读取内容 content = read_stream.read() # 创建写的流 with open('../files/a2.txt', mode='w') as write_stream: # 把读取的内容写到write_stream流中 write_stream.write(content) print('内容复制完毕!') print('over') with open('../files/a4.txt') as read_stream: pos = read_stream.tell() print('pos:', pos) content = read_stream.read(4) print(content) pos = read_stream.tell() # 获取光标位置 print('pos:', pos) read_stream.seek(10) pos = read_stream.tell() print('pos:', pos) content = read_stream.read() print(content)
-
持久化练习—名片系统
# 添加名片 def add_card(): new_name = input("请输入姓名:") new_tel = input("请输入手机号:") new_qq = input("请输入QQ:") # 查询手机号码是否唯一 isRecord = search_card(new_tel) if isRecord: print('此手机号码已被注册!') else: with open('../files/cards.txt', 'a') as wstream: card_str = new_name + ',' + new_tel + ',' + new_qq + '\n' wstream.write(card_str) print('{}成功加入名片系统'.format(new_name)) # 根据手机号码去文件中查询 def search_card(tel): # 找到相同的手机号True,否则返回False with open('../files/cards.txt') as rstream: content = rstream.readline() # content是一个字符串类型 while content: # '' None --->False '....'---->True card_msg = content.split(',') # [zhangsan,1738829839,8495893] if card_msg[1] == tel: return True # 继续读取下一行内容 content = rstream.readline() return False def select_card(): # 读取cards.txt中文件内容 with open('../files/cards.txt') as rstream: content = rstream.read() print(content) def del_card(tel): isRecord = search_card(tel) if isRecord: temp_list = [] # 存在则删除 with open('../files/cards.txt') as rstream: content = rstream.readline() while content: card_msg = content.split(',') # [zhangsan,1738829839,8495893] if card_msg[1] != tel: temp_list.append(content) # 继续读取下一行内容 content = rstream.readline() with open('../files/cards.txt', 'w') as wstream: wstream.writelines(temp_list) else: print('不存在此手机号') def update_card(tel): # 手机号码是唯一标识不能修改其他可以修改 isRecord = search_card(tel) if isRecord: # 声明新的列表用于保存读取的每行信息 temp_list = [] # 存在则修改 with open('../files/cards.txt') as rstream: content = rstream.readline() while content: card_msg = content.split(',') # [zhangsan,1738829839,8495893] # 如果手机号码相等 if card_msg[1] == tel: # 打印手机号码信息 print('手机号码:{}的名片信息如下:'.format(tel)) print(content) # 收入更新后信息 name = input('请输入要修改的用户名(空为不修改):') qq = input('请输入要修改的QQ(空为不修改):') # 判断name是否为空 if name: card_msg[0] = name # 判断qq是否为空 if qq: card_msg[2] = qq # 拼接修改后的列表 content = ','.join(card_msg) # 将行信息写入列表 temp_list.append(content) # 继续读取下一行内容 content = rstream.readline() with open('../files/cards.txt', 'w') as wstream: wstream.writelines(temp_list) else: print('不存在此手机号') # 入口函数 def main(): print('-------名片管理系统---------') while True: choice = input('请选择功能:1.添加名片 2.删除名片 3.修改名片 4.查询名片 5.退出\n') if choice == '1': # 添加名片 print('------------添加名片--------------') add_card() elif choice == '2': print('------------删除名片--------------') tel = input('输入要删除名片的手机号码:') del_card(tel) elif choice == '3': print('------------修改名片--------------') tel = input('输入要删除名片的手机号码:') update_card(tel) elif choice == '4': print('------------查询名片--------------') select_card() elif choice == '5': print('正在退出名片系统....') print('退出完毕!') break else: pass main() # flag = search_card('15866669999') # print(flag)
文件操作——with open+文件持久化
最新推荐文章于 2023-07-04 11:24:39 发布