编程手养成计划 Day5

Python基础(五)

一、文件和异常

(一)从文件中读取数据

  1. 读取整个文件

1.txt

5201314

main.py

with open('1.txt') as file:
	contents = file.read()
	print(contents.rstrip())	# 删除读取时产生的空行,但实际测试时不会产生所谓空行

注:

  • 关键字with在不再需要访问文件后将其关闭。我们调用了open(),但我们无需调用close(),让python决定何时关闭文档。
  • 使用绝对路径时,对于windows而言使用反斜杠\,且一般通过变量传递。
  1. 逐行读取
with open('1.txt') as file:
	for line in file:
		print(line.strip())
  1. 创建一个包含文件各行内容的列表
with open('1.txt') as file:
	lines = file.readlines()		# 将文件分行存入列表lines
for line in lines:
	print(line.strip())

(二)写入文件

  1. Python的所有读写模式:
  • w:以写方式打开,吧
  • a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
  • r+:以读写模式打开
  • w+:以读写模式打开 (参见 w )
  • a+:以读写模式打开 (参见 a )
  • rb:以二进制读模式打开
  • wb:以二进制写模式打开 (参见 w )
  • ab:以二进制追加模式打开 (参见 a )
  • rb+:以二进制读写模式打开 (参见 r+ )
  • wb+:以二进制读写模式打开 (参见 w+ )
  • ab+:以二进制读写模式打开 (参见 a+ )
with open('1.txt', 'w') as file:	# 以w模式打开,会将写入内容覆盖原内容
	file.write("201314")
with open('1.txt', 'a') as file:	# 以a模式打开,会将写入内容添加到末尾
	file.write("201314")

注:如果要写入的文件不存在,open()会自动创建。

(三)异常

  1. 处理ZeroDivisionError异常

main.py

print(5 / 0)
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    print(5/0)
ZeroDivisionError: division by zero

错误ZeroDivisionError是一个异常对象。Python无法按你要求做时,就会创建这种对象。
2. 使用try-except代码快
即告诉python如何处理异常,这样操作不会停止程序。

--snip--

try:
	answer = int(first_number) / int(second_number)
except ZeroDivisionError:
	print("0不能被当做除数")
else:
	print(answer)
  1. 使用异常避免崩溃
    程序崩溃可不太好,让用户看到错误报告也不是好主意,防止不懂技术的人搞糊涂、提高程序的安全性,我们一定要妥善处理好错误。
  2. 处理FileNotFoundError异常

当我们尝试读取一个不存在的文件:

with open("2.txt") as file:
	contents = file.read()

报错信息如下:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    with open("2.txt") as file:
FileNotFoundError: [Errno 2] No such file or directory: '2.txt'

处理方式:

try:
	with open("2.txt") as file:
	contents = file.read()
except FileNotFoundError:
	print("未找到文件")
  1. 分析文本
    方法split()以空格为分隔符将字符串拆成部分,并存在列表中。
>>> title = "I love you!"
>>> title.splie()
['I', 'love', 'you!']
  1. 失败时一声不吭
try:
	with open("2.txt") as file:
	contents = file.read()
except FileNotFoundError:
	pass		# 使用pass,python将什么都不做

(四)存储数据

使用json可以将简单的python数据结构存储,并在python程序中共享数据,甚至与其他编程语言共享。

  1. 使用json.dump()和json.load()
    使用json.dump()存储数据、使用json.load()读取数据
import json
numbers = [1, 2, 3, 4, 5]
with open('1.json', 'w') as file:
	json.dump(numbers, file)	# 将数据写入
with open('1.json', 'r') as file:
	print(json.load(file))	# 读取数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值