从文件中读取数据
with open (r'文件地址','a') as file_object:
for line in file_object: #逐行读取
print(line)
lines=file_object.readlines() #创建一个包含文件各行内容的列表
for line in lines: #逐行打印
print(line.rstrip())
写入文件
#只写:a,只读:r,附加:a,读写:r+
filename='guest.txt'
while 1:
with open (filename,'a') as guest:
name=input("Please input your name(enter 'q' to quit):")
if name=='q':
break
else:
guest.write(name+"\n")
print("Hello,"+name+"!")
with open (filename,'r') as guest:
guest=guest.read()
print(guest)
输出结果:
异常
可以提前处理异常来使程序正常运行
//try-except代码块、使用异常避免崩溃
#加法计算器(处理用户输入非数字的情况)
while 1:
num1=input("Please input a number (enter 'q' to quit):")
if num1=='q':
break
else:
num2=input("Please input a num (enter 'q' to quit):")
if num1=='q':
break
else:
try:
sum=int(num1)+int(num2)
print(str(num1)+"+"+str(num2)+"="+str(sum))
expect ValueError:
print('Error,please input a number')
输出结果:
//分析文本
#读取特定单词在文本中出现了多少次
def novel_words(location,word):
#处理空文件异常,避免崩溃
try:
with open (location,'r') as novel:
novel=novel.read()
except FileNotFoundError:
print("Your file can't be found , please input again!")
else:
#读小说多少单词
#split把小说分成列表存在words中
words=novel.split()
num_words=len(words)
print("The number of this novel:"+str(num_words))
#读某个单词出现次数
num_word=novel.lower().count(word)
print("The number of word "+"'"+word+"'"+" in this novel: "+str(num_word))
while 1:
location=input("Please input the location of the novel (enter 'q' to quit):")
if location == 'q':
break
else:
word=input("Please input the word you want to look for in this novel (enter 'q' to quit):")
if word=='q':
break
else:
novel_words(location,word)
输出结果:
存储数据
使用 json 保存和读取用户生成的数据
#存储用户输入的数字
import json
try:
favorite_number='favorite_number.json'
with open(favorite_number) as favorite_num:
num=json.load(favorite_num)
except FileNotFoundError:
with open(favorite_number,'w') as favorite_num:
number=input("Please input your favorite number:")
json.dump(favorite_num,number)
else:
print("I know your favorite number ! It's "+num)
输出结果:
重构:把代码分成一系列完成具体工作的函数
import json
def get_stored_username():
"""Get stored username if available."""
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
return None
else:
return username
def get_new_username():
"""Prompt for a new username."""
username = input("What is your name? ")
filename = 'username.json'
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
return username
def greet_user():
"""Greet the user by name."""
username = get_stored_username()
if username:
print("Welcome back, " + username + "!")
else:
username = get_new_username()
print("We'll remember you when you come back, " + username + "!")
greet_user()
输出结果:
最后这个重构有点绕。。。