您的位置:首页 > 编程语言 > Python开发

文件读写和异常(Python)

2018-02-13 19:43 246 查看
读取文件
例:
with open('D://Develop//new.txt') as file_object:
contents=file_object.read()
print(contents)
函数open()打开文件返回一个表示文件的对象存储在后面使用的变量中,它接受一个参数:要打开文件的名称,如果文件在当前执行的文件所在的目录中,则直接传入文件的名称,否则还需要指定文件的路径,这叫绝对文件路径。
关键字with在不再需要访问文件后将其关闭
方法read()读取这个文件的全部内容

写入文件
filename='programming.txt'
with open(filename,'w') as file_object:
file_object.write("I love programming.")
在这个示例中,调用open()时提供了两个实参。第一个实参是要打开的文件的名称,第二个实参‘w’告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’;给文件添加内容,而不是覆盖原有的内容)或让你能够读取和写入的模式(‘r+’)。如果省略模式实参,Python将默认的只读模式打开文件。
如果要写入的文件不存在,将自动创建。在以写入(‘w’)模式打开文件时要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
写入多行时文本文件中不会因为print换行,因此在代码中要指定换行符\n

异常
每当发生让Python不知所措的错误时,它都会创建一个异常对象。异常是使用try-except代码块处理的。
处理ZeroDivisionError异常
一个简单错误:除以数字0,将会出现报错,这时我们可以使用try-except代码块来处理可能引发的异常
例:
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
如果try代码块中的代码运行起来没有问题,Python将跳过except代码块;否则Python将查找这样的except代码块并运行其中的代码
try-except-else代码块:try代码块成功执行时才需要运行的代码放在else代码块中

处理FileNotFoundError异常
filename = 'alice.txt'
with open(filename) as f_obj:
contents = f_obj.read()
若文件不存在,将引发一个FileNotFoundError异常
要处理这个错误:
filename = 'alice.txt'
try:
with open(filename) as f_obj:
contents = f_obj.read()
except FileNotFoundError:
msg = "Sorry, the file " + filename + " does not exist."
print(msg)将会显示Sorry, the file alice.txt does not exist.

失败时一声不吭:在except代码块中明确地告诉Python什么都不要做。即pass语句

存储数据
模块json让你能够将简单的Python数据结构转储到文件中,json采用完全独立于编程语言的文本格式来存储和表示数据。
使用json.dump()和json.load()
例:
import json
numbers=[2,3,5,7,11,13]
filename='numbers.json'
with open(filename,'w') as f_obj:
json.dump(numbers,f_obj)
使用文件扩展名.json来指出文件存储的数据为JSON格式。
使用函数json.dump()将数字列表存储到文件numbers.json中
json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。

接下来再编写一个程序,使用json.load()将这个列表读取到内存中
接上面程序:
with open(filename) as f_obj:
a=json.load(f_obj)
print(a)
使用函数json.load()加载存储在numbers.json中的信息,并将其存储到变量a中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 文件 异常