python基本语法学的差不多了,今天做了个练习,代码写的很low,算是复习了一下C语言的文件一节了吧。
编写一款你自己的命令行地址簿程序,你可以用它浏览、添加、编辑、删除或搜索你的联系人,例如你的朋友、家人、同事,还有他们诸如邮件地址、电话号码等多种信息。这些详细信息必须被妥善储存以备稍后的检索。
# coding=utf-8
import os
fname = input('enter filename[exit to quit]:')
while True:
if fname == 'exit':
break;
if os.path.exists(fname):
inputChoose = input("Choose what do you want to do?\\n 1.Add 2.Del 3.Lookup 4.Update");
if inputChoose == '3':
f = open('addr.txt', 'r') # 文件为addr.txt
sourceInLines = f.readlines() # 按行读出文件内容
f.close()
new = [] # 定义一个空列表,用来存储结果
for line in sourceInLines:
temp1 = line.strip('\n') # 去掉每行最后的换行符'\n'
temp2 = temp1.split(',') # 以','为标志,将每行分割成列表
new.append(temp2) # 将上一步得到的列表添加到new中
print(new);
elif inputChoose == '1':
while True:
text = input('Enter text[exit to quit]: ')
if text != 'exit':
myf = open('addr.txt', 'a')
print
text
myf.write(text)
myf.write(os.linesep)
else:
break
myf.close()
print('exit')
elif inputChoose == '2':
while True:
inputDel = input("Enter what dou you want del[exit to quit]:");
if inputDel != 'exit':
lines = [l for l in open("addr.txt", "r") if l.find(inputDel, 0, 8) != 0]
fd = open("addr.txt", "w")
fd.writelines(lines)
else:
break
fd.close()
elif inputChoose == '4':
while True:
inputOral = input("Enter what dou you want update[exit to quit]:");
inputUpdate = input("Enter what dou you want update[exit to quit]:");
if inputUpdate or inputOral != 'exit':
f1 = open('addr.txt', 'r+')
infos = f1.readlines()
f1.seek(0, 0)
for line in infos:
line_new = line.replace(inputOral, inputUpdate)
f1.write(line_new)
f1.close()
else:
break
f1.close()
else:
break
代码第一次执行的时候会新建addr.txt文件,当然,如果输入文件名称错误,所有的内容会写到别的文件中,可以判断一下
展示一下成果: