python学习day07

一:文件操作

#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()

 

posted @ 2018-03-04 22:54  Duke777  阅读(118)  评论(0编辑  收藏  举报