第九章 文件和异常
9.1 读取文件
with open('name.txt') as f:
contents = f.read()
print(contents)
9.1.1 逐行读取
with open('name.txt') as f:
for line in f:
print(line)
9.1.2 将每行内容存储在列表中
filename = 'name.txt'
with open(filename) as f:
list = f.readlines() #readlines方法从文件中读取每一行。
for l in list:
print(l)
9.1.3 使用文件的内容
filename = 'yzl.txt'
with open(filename) as f:
list = f.readlines()
yzl_string = ''
for l in list:
yzl_string += l
print(yzl_string)
9.2 写入文件(w)
9.2.1 写入空文件
filename = 'write.txt'
with open(filename, 'w') as f:
f.write('我喜欢编程!')
9.2.2 附加到文件(a)
给文件添加内容而不是覆盖内容。
filename = 'add.txt'
with open(filename, 'a') as f:
f.write('这句话会添加到文件的末尾!')
9.3 异常
异常是使用try-except代码块处理的。
try:
print(5/0)
except ZeroDivisionError:
print("不能除0")
将可能导致错误的代码放在try代码块中。
将指出错误的代码放在except代码块中。
9.4 分析文本
filename = 'usersname.txt'
try:
with open(filename) as f:
content = f.read()
except FileNotFoundError:
print("没有此文件!")
else:
words = content.split()
num_words = len(words)
print("这个文件包括" + str(num_words) + "个字。")
方法split()以空格为分隔符将字符串拆分成多个部分,并将这些部分都存储到一个列表中。
9.5 使用json模块存储数据
9.5.1 json.dump()和json.load()
json.dump()用来存储数据
函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
import json
numbers = [1, 2, 3]
filename = 'numbers.json'
with open(filename, 'w') as f:
json.dump(numbers, f)
json.load()用来读取
import json
filename = 'numbers.json'
with open(filename) as f:
numbers = json.load(f)