一:文件操作
#codeing:UTF-8 #__author__:Duke #date:2018/3/4/004 #今天学习文件操作 # #读文件 f = open(‘information‘,‘r‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 data = f.read(5)# 并用read方法,无参数时读出全部的内容,参数为字符数 print(data) f.close() #关闭文件 # # #写文件 f = open(‘information2‘,‘w‘,encoding=‘utf-8‘) #打开一个文件对象,用写的方式 f.write(‘hello world !‘)# 并用write方法 f.write(‘duke‘) f.close() #关闭文件 # # #追加文件内容 f = open(‘information2‘,‘a‘,encoding=‘utf-8‘) #打开一个文件对象,用追加的方式 f.write(‘hello ****!‘)# 并用write方法 f.write(‘杜克‘) f.close() #关闭文件 # r+ 模式 在最后追加 f = open(‘information‘,‘r+‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 data = f.read(5)# 并用read方法,无参数时读出全部的内容,参数为字符数 print(data) f.write(‘\njoin‘) f.close() #关闭文件 #先清空,可写之后可读 f = open(‘information‘,‘w+‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 f.write(‘join‘) print(f.tell())#写完后光标在最后 f.seek(0) #调整光标,后才可以读取 print(f.readline()) f.close() #关闭文件 #复制文件 f_read = open(‘information2‘,‘r‘,encoding=‘UTF-8‘) f_write = open(‘information3‘,‘a‘,encoding=‘UTF-8‘) num = 0 for line in f_read: num = num+1 if num == 6: line = ‘hello world\n‘ f_write.write(line) f_write.close() f_read.close()
二:文件对象的方法
#codeing:UTF-8 #__author__:Duke #date:2018/3/4/004 #读文件 f = open(‘information‘,‘r‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 num = 0; for i in f:#迭代器方法读取数据,也就是用一行取一行 num +=1 if num == 6: i = ‘‘.join([i.strip(),‘iii‘]) print(i.strip()) f.close() #关闭文件 # #tell方法 f = open(‘information‘,‘r‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 print(f.tell()) #tell方法读取光标位置 print(f.read(1)) print(f.tell()) f.seek(0) #调整光标位置 print(f.tell()) print(f.read(1)) print(f.tell()) f.close() #关闭文件 import time f = open(‘information2‘,‘w‘,encoding=‘utf-8‘) #打开一个文件对象,用读的方式 f.write(‘duke‘)# 并用read方法,无参数时读出全部的内容,参数为字符数 f.flush() time.sleep(10) time.sleep(10) f.close() #关闭文件 #flush 方法 import time,sys for i in range(30): sys.stdout.write(‘*‘) sys.stdout.flush() time.sleep(0.1) #truncate 截断方法 f = open(‘information2‘,‘a‘,encoding=‘utf-8‘) #打开一个文件对象,用追加的方式 f.truncate(2) f.close() #关闭文件
三:作业时间(三级菜单的增删查改)
#codeing:UTF-8 #__author__:Duke #date:2018/3/4/004 file = open(‘information‘,‘r+‘,encoding=‘UTF-8‘) data = file.read() data = eval(data) file.close(); # for key in data: # print(key) current_layer = data; #记录当前所在级 parent_layers =[ ]; #列表存放进入路径 flag = 0; while True: for key in current_layer: print(key); #循环打印菜单 choice = input("[b:返回,d:删除,a:增加 ,r:修改 ]>>>:").strip() #输入,并去除前后的空格形式的多余字符 if len(choice) == 0:continue; if choice in current_layer: parent_layers.append(current_layer) #进入下一层前先将他的前一层放到进入的路径列表中 current_layer = current_layer[choice]; #将下一层赋值为当前层 elif choice == ‘b‘: if parent_layers: current_layer = parent_layers.pop (); #取出它的父层,并赋值到当前层 elif flag ==1 : break; else: flag +=1 print ("已经是最第一层,再按一次将退出程序") elif choice == ‘d‘: value = input("输入你想删除的值:>>") current_layer.pop(value) elif choice == ‘r‘: value1 = input("输入你想修改的值:>>") current_layer.pop (value1) value2 = input("输入你想修改后的值:>>") value2 = {value2: {}} current_layer.update (value2) elif choice == ‘a‘: value = input("输入你想增加的值:>>") value = {value:{}} current_layer.update(value) else: #判断非法输入 print("无该选项..."); print(data) file2 = open(‘information‘,‘w‘,encoding=‘UTF-8‘) data = str(data) file2.write(data) file2.close()