Python基础(八)-文件和异常

读取文件中的数据

  • 读取整个文件
1
2
3
with open('text.txt') as file_object:
contents = file_object.read()
print(contents)
  • 分析

with 关键字在不需要访问文件时会将其关闭,open()函数接收一个参数,该参数是文件路径,text.txt是当前目录下的文件,所以可以直接这么写,在其他路径直接写其他路径名,如:text.txt在当前目录下的txt文件夹中,那么路径为:txt\text.txt,要是在D盘的txt文件夹下可以这么写:D:\txt\text.txtas 表示给对象起别名,read()读取这个文件的全部内容,结果为字符串(该字符串结尾会多一行空行),可用rstrip()去除空行。

  • 逐行读取文件
1
2
3
4
with open('text.txt') as file_object:
for line in file_object:
# 逐行读取需要去除空行,否则空行会越来越多(也是看需求吧)
print(line.rstrip())
  • strip()rstrip() 的区别

strip() : 去掉所有空格

rstrip() :去掉空行

写入文件

  • 写入空文件
1
2
3
4
file_name = 'text0.txt'
with open(file_name, 'w') as file_object:
file_object.write(" I Love Python.\n")
file_object.write(" I Love Android")
  • open()函数又两个参数,第一个参数是文件名,第二个参数是模式:w表示写入模式,还有r表示读取模式,a 或者 r+表示附加模式,python 默认是以只读模式打开文件
  • 如果写入的文件不存在,则穿件该文件
  • 如果是写入模式, 会将文件清空再写入
  • 附件模式,是在文件的内容末尾加上新写入的内容

异常

  • 使用try-except代码块:ZeroDivisionError
1
2
3
4
try:
print(5/0)
except ZeroDivisionError:
print("you can't divide by zero!")
  • FileNotFoundError 异常

打开文件找不到文件

  • pass

表示什么都不做,在发生错误时不想输出信息,可以用pass语句

存储数据

  • 使用 json.dump() 和 json.load()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 存文件
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
json.dump(numbers, f_obj)

# 取文件
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)

print(numbers)
  • 导入 json 模块,创建一个数字列表,将列表存储到文件,利用json.dump()将文件存为json格式
  • 利用json.load()将文件读取出来
小额支持我写出更好的文章~