【day 8】python编程:从入门到实践学习笔记-文件和异常(末附答案代码)
2018-03-20 09:35
1171 查看
学习笔记目录
【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
【day 2】python编程:从入门到实践学习笔记-列表以及其操作
【day 3】python编程:从入门到实践学习笔记-if 语句(末附练习答案代码)
【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末附答案代码)
【day 6】python编程:从入门到实践学习笔记-函数(末附练习答案代码)
【day 7】python编程:从入门到实践学习笔记-类(末附练习答案代码)
【day 8】python编程:从入门到实践学习笔记-文件和异常(末附练习答案代码)
【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
【day 10】python编程:从入门到实践学习笔记-Django入门(一)
【day 11】python编程:从入门到实践学习笔记-Django入门(二)
【day 12】python编程:从入门到实践学习笔记-Django入门(三)
【day 13】python编程:从入门到实践学习笔记-Django入门(四)
【day 14】python编程:从入门到实践学习笔记-用户账户(一)
【day 15】python编程:从入门到实践学习笔记-用户账户(二)
【day 16】python编程:从入门到实践学习笔记-用户账户(三)
【day 17
4000
】python编程:从入门到实践学习笔记-设计样式和部署(一)
【day 18】python编程:从入门到实践学习笔记-设计样式和部署(二)
函数
关键字
函数
相对文件路径:相对于当前运行的程序所在目录。
绝对文件路径:完整的文件路径。
创建包含文件各行内容的列表并使用
使用关键字
注意:读取文本文件时,python将其中所有文本都解读稳字符串。
如果写入的文件不存在,则
注意:python只能将字符串写入文本文件。函数
附加到文件
如果要写入文件并不覆盖,可以使用附加模式。写入的行都会添加到文件末尾。指定文件不存在时,自动创建。
异常是使用
使用
除了
如果希望发生错误时继续运行,可以在
函数
函数
下面将存取数据和异常结合一下程序运行时,从文件获取用户名,若文件不存在,则提示输入用户名并存储:
第十章练习答案代码
链接:https://pan.baidu.com/s/1RrM9-f-w6PTKD43PhQ0nlg 密码:y1dr
【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
【day 2】python编程:从入门到实践学习笔记-列表以及其操作
【day 3】python编程:从入门到实践学习笔记-if 语句(末附练习答案代码)
【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末附答案代码)
【day 6】python编程:从入门到实践学习笔记-函数(末附练习答案代码)
【day 7】python编程:从入门到实践学习笔记-类(末附练习答案代码)
【day 8】python编程:从入门到实践学习笔记-文件和异常(末附练习答案代码)
【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
【day 10】python编程:从入门到实践学习笔记-Django入门(一)
【day 11】python编程:从入门到实践学习笔记-Django入门(二)
【day 12】python编程:从入门到实践学习笔记-Django入门(三)
【day 13】python编程:从入门到实践学习笔记-Django入门(四)
【day 14】python编程:从入门到实践学习笔记-用户账户(一)
【day 15】python编程:从入门到实践学习笔记-用户账户(二)
【day 16】python编程:从入门到实践学习笔记-用户账户(三)
【day 17
4000
】python编程:从入门到实践学习笔记-设计样式和部署(一)
【day 18】python编程:从入门到实践学习笔记-设计样式和部署(二)
第十章 文件和异常
从文件中读取数据
读取文件、文件路径pi_digits.txt 3.1415926535 8979323846 2643383279 file_reader.py fillename = 'pi_digits.txt' #读取整个文件 with open(filename) as file_object: contents = file_object.read() print(contents.rstrip()) #逐行读取 with open(filename) as file_object: for line in file_object: print(line.rstrip()) 运行结果: 3.1415926535 8979323846 2643383279 3.1415926535 8979323846 2643383279
函数
open():接受要打开文件的文件名作为参数。如果没有指定路径,则在当前执行的文件所在的目录中查找指定的文件。此函数返回一个表示文件的对象。
关键字
with:表示在不需要访问文件之后将其关闭。
函数
read():用于从文件读取指定的字节数,如果未给定或为负则读取所有。到达文件末尾时返回一个空字符串(空行)。打印时可使用函数
rstrip()删掉。
相对文件路径:相对于当前运行的程序所在目录。
绝对文件路径:完整的文件路径。
创建包含文件各行内容的列表并使用
使用关键字
with时,
open()返回的文件对象只在
with代码块内使用。如果要在
with代码块外访问文件内容,可在里边将文件各行存储在一个列表中待后续使用。
filename = 'pi_30_digits.txt' with open(filename) as file_object: lines = file_object.readlines() pi_string = '' for line in lines: pi_string += line.strip() print(pi_string) print(len(pi_string)) 运行结果: 3.141592653589793238462643383279 32
注意:读取文本文件时,python将其中所有文本都解读稳字符串。
写入文件
将文本写入文件时,调用open()时需要提供另外一个实参。其中,第一个实参时要打开的文件的名称。第二个实参是指定的模式:读取模式('r')、写入模式(
'w')、附加模式(
'a')、读取和写入模式(
'r+')。如果省略将以默认的只读模式打开文件。
如果写入的文件不存在,则
open()会自动创建它。如果以写入模式打开文件且指定文件对象存在,则返回文件对象前会清空改文件。
filename = 'programming.txt' with open(filename, 'w') as file_object: file_object.write("I love programming.") file_object.write("I love programming.\n") file_object.write("I love creating new games.\n") 运行结果: programming.txt I love programming.I love programming. I love creating new games.
注意:python只能将字符串写入文本文件。函数
write()不会在写入的文本末尾添加换行符。
附加到文件
如果要写入文件并不覆盖,可以使用附加模式。写入的行都会添加到文件末尾。指定文件不存在时,自动创建。
filename = 'programming.txt' with open(filename, 'a') as file_object: file_object.write("I also love finding meaning in large datasets.\n") file_object.write("I love creating apps that can run in a browser.\n") 运行结果: programming.txt I love programming.I love programming. I love creating new games. I also love finding meaning in large datasets. I love creating apps that can run in a browser.
异常
异常时python用来管理程序执行期间发生错误的特殊对象。异常是使用
try-except代码块处理的。如果
try代码块中的代码运行无误,则跳过
except代码块;如果
try代码块中的代码运行出现错误,则运行
except代码块。
print(5/0) 运行结果: Traceback (most recent call last): File "division.py", line 1, in <module> print(5/0) ZeroDivisionError: division by zero
ZeroDivisionError是一个异常对象。
try: print(5/0) except ZeroDivisionError: print("You can't divide by zero!") 运行结果: You can't divide by zero!
使用
try-except代码块也可以隐藏Traceback,防止恶意攻击等等。
除了
try-except代码块还有
try-except-else代码块。其中
try代码块只包含可能导致错误的代码,而依赖于其成功执行的代码都放在
else代码块中。
如果希望发生错误时继续运行,可以在
except代码块中使用
pass语句。
pass语句还充当了占位符,用来提醒我们在程序的某个地方什么都没有做。
存储数据
模块json可以让我们将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。并且还可以使用json在python程序中分享数据。函数
json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
import json numbers = [2, 3, 5, 7, 11, 13] filename = 'numbers.json' with open(filename, 'w') as f_obj: json.dump(numbers, f_obj) 运行结果: numbers.json [2, 3, 5, 7, 11, 13]
函数
json.load()加载存储在指定文件对象的信息。
import json filename = 'numbers.json' with open(filename) as f_obj: numbers = json.load(f_obj) print(numbers) 运行结果: [2, 3, 5, 7, 11, 13]
下面将存取数据和异常结合一下程序运行时,从文件获取用户名,若文件不存在,则提示输入用户名并存储:
import json # 如果以前存储了用户名就加载它 # 否则提示用户输入用户名并存储它 filename = 'username.json' try: with open(filename) as f_obj: username = json.load(f_obj) except FileNotFoundError: username = input("What is your name? ") with open(filename, 'w') as f_obj: json.dump(username, f_obj) print("We'll remember you when you come back, " + username + "!") else: print("Welcome back, " + username + "!") 运行结果: #如果文件不存在 What is your name? Eric We'll remember you when you come back, Eric! #如果文件存在 Welcome back, Eric!
第十章练习答案代码
链接:https://pan.baidu.com/s/1RrM9-f-w6PTKD43PhQ0nlg 密码:y1dr
相关文章推荐
- 【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
- 【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
- 【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末答案)
- 【day 17】python编程:从入门到实践学习笔记-基于Django框架的Web开发-设计样式和部署(一)
- [置顶] 【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
- 【day 13】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(四)
- 【day 14】python编程:从入门到实践学习笔记-基于Django框架的Web开发-用户账户(一)
- 【day 2】python编程:从入门到实践学习笔记-列表以及其操作
- 【day 15】python编程:从入门到实践学习笔记-基于Django框架的Web开发-用户账户(二)
- 【day 12】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(三)
- 【day 16】python编程:从入门到实践学习笔记-基于Django框架的Web开发-用户账户(三)
- 【day 10】python编程:从入门到实践学习笔记- 基于Django框架的Web开发-Django入门(一)
- 学习笔记_python_python编程从入门到实践2.0
- iMOOC学习笔记:Java的Excel读写操作入门实践-利用POI解析Excel文件(二)
- Python编程从入门到实践-书籍学习笔记
- 《Python编程从入门到实践》_第十章_文件和异常
- python编程:从入门到实践学习笔记(二)
- 【Python编程:从入门到实践】第十章:文件和异常
- 学习笔记_python_python编程从入门到实践3.0
- python编程:从入门到实践学习笔记(一)