python基础学习9---文件与异常

访问文件,以及对文件进行操作; 以及异常的抛出及处理

文件

#读取文件
filepath='D:\Desktop\pi_value.txt'   #windows下是反斜杠\, linux是斜杠/
with open(filepath) as file_object:   #打开文件,得到一个文件类file_object,使用with的结构是方便在这个作用域结束后自动关闭文件,不用再人工调用close函数
	contents=file_object.read()          
	print(contents.rstrip())    #rstrip()方法是减少一个多余的换行,可以不使用
	
#result: 3.1415926535
#          8979323846
#          2643383279

#按行读取
with open(filepath) as file_object:
	for line in file_object:
		print(line.rstrip())     #同样也是去除多余的

#对数据进行处理
with open(filepath) as file_object:
	lines=file_object.readlines()   #lines是一个列表,每个元素就是文件的一行
pi_string=''
for line in lines:
	pi_string+=line.strip()
print(pi_string)

#result: 3.141592653589793238462643383279

#  string.replace(A,B)    #用B取代string中的A




#写入文件
filename='D:\\Desktop\\null.txt'	 #此处单反斜杠不行,改为双方斜线   原因暂不清楚
with open(filename,'w') as file_object:   #open()函数第二个参数是打开方式,'w'表示写,'a'是附加方式,'r+'是读取和写入,如果不写第二个参数,则默认是只读的'r'
#此外'w'方式打开时,若是已存在文件,怎会清空原文件内容
	file_object.write("miss me? miss me? miss me?")    #写内容进文件 只能写字符串进入文件
#result:  文件D:\Desktop\null.txt被创建并被写入内容"miss me? miss me? miss me?"

#附加方式  即在原文件尾添加,不清空原文件内容
with open(filename,'a') as file_object:
	file_object.write("\n this is another append message。") 
# D:\\Desktop\\null.txt :
# miss me? miss me? miss me?
# this is another append message。

异常

# try-except语句   除零错误
num=input("give me a number to divide:")
num=int(num)
try:
	answer=100/num
except ZeroDivisionError:
	print("you can't divide by ZERO !")
else:
	print(answer)
# 结果是输出提示信息,而不是异常退出程序
#如果不使用try except语句抛出并异常,那么就会程序直接中断退出

# 文件错误
filename='this_file_not_exist.txt'
try:
	with open(filename) as fileobj:
		contents=fileobj.read()
except FileNotFoundError:
	print("file not found!")

#当然也可以不处理 仅仅在except后使用pass语句就可以(类似于单片机的_nop_())

使用json存取数据

#json.dump用于写入json文件内容,json.load用于加载读出json文件内容
import json
number=[1,3,5,7,9,12]
with open('listofmine.json','w') as f_obj:
	json.dump(number,f_obj)   #将number列表保存进listofmine.json文件中

with open('listofmine.json') as f_obj:
	jsonnumber=json.load(f_obj)   #从listofmine.json文件中读取数据
print(jsonnumber)

重构: 将代码划分为一系列完成具体工作的函数

你可能感兴趣的:(python基础学习,python)