《Python编程:从入门到实践》第10章学习小结

学习笔记:

文件读取:

要让Python打开不与程序文件位于同一个目录中的文件,需要提供文件路径,它让Python到系统的特定位置去查找。
在Linux和OS X中,你可以这样编写代码:with open('text_files/filename.txt') as file_object:
在Windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/):with open('text_files\filename.txt') as file_object:

运行时报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

原因:在windows系统中读取文件路径时用\,但是在python中\有转义的含义
解决方法:1.在路径前面加r;2.将所有\替换成\\;3.将所有\替换成/

用python读写文件:

调用open()时提供了两个实参,第二个实参可指定读取模式('r')、写入模式('w')、附加模式('a')或让你能够读取和写入文件的模式('r+')。如果要写入的文件不存在,函数open()将自动创建它。如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
注:
Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。
写入模式'w'会将原来文件中的内容清空再写入,但是附加模式'a'只会将输入内容写在原来文件的末尾。    
write()不会在最后添加换行符。

处理异常:

异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。
try-except-else代码块的工作原理大致如下:Python尝试执行try代码块中的代码;只有可能引发异常的代码才需要放在try语句中。有时候,有一些仅在try代码块成功执行时才需要运行的代码;这些代码应放在else代码块中。except代码块告诉Python,如果它尝试运行try代码块中的代码时引发了指定的异常,该怎么办。

模块json:

模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以使用json在Python程序之间分享数据。更重要的是,JSON数据格式并非Python专用的,这让你能够将以JSON格式存储的数据与使用其他编程语言的人分享。这是一种轻便格式,很有用,也易于学习。
json.dump(content,filename):在文件中储存内容
json.load(filename):在文件中下载内容

随手写的代码:

file_path='C:/Users/12238/Desktop/python_work/text_files/pi_digits.txt'
with open(file_path) as file_object:
	content=file_object.read()
	print(content.rstrip())
	lines=file_object.readlines()#逐行读取,储存为列表

pi_line=''
for line in lines:
		pi_line+=line.strip()

print(pi_line)
print(len(pi_line))

file_path='C:/Users/12238/Desktop/python_work/text_files/pi_digits.txt'
with open(file_path,'a') as file_object:
	file_object.write("\ni love you,too") 
a=input("please tell me your favorite number: ")
a=int(a)
try:
	 print(5/a)
except ZeroDivisionError:
	print("you can't do it")
print("please give me two numbers and I'll divide them.")
print("you can stop by type in 'q'")
while True:
	first_number=input("give me first number: ")
	if first_number=='q':
		break
	last_number=input("give me last number: ")

 

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页