python(7)

文件和异常

从文件中读取数据

with open('pi_digits.txt') as file_object:
    contents = file_object.read()
    print(contents)

函数open()要以任何方式使用文件,都要先打开文件,这样才能访问他。函数open()接受一个参数:要打开的文件名称,python在当前执行的文件所在目录中查找指定文件。

关键字with在不需要访问文件后将其关闭。

方法read()读取文件的全部内容,并将其作为字符串存储在变量contents中

read()在到达文件末尾时返回一个空字符串,而空字符串显示出来的时候就是一个空行。

要让python打开不与程序文件位于同一个目录中的文件,需要提供文件路径,他让python到系统的特定位置去查找。

要逐行读取可以对文件对象使用for循环

filename = 'pi_digits.txt'
with open(filename) as file_object:
    for line in file_object:
        print(line)

使用关键字with时,open()返回的文件对象只在with()代码块内可用。如果要在with()代码块外访问文件的内容,可在with代码快内将文件的各行储存在列表中。

读取文本文件时,python将其中的所有文本都解读为字符串。

写入文件

要写入文件,你在调用open()时需要系统另一个实参,告诉python你要写入文件。

可以指定读取模式('r'),写入模式('w'),附加模式('a')或能让你能够读取和写入文件的模式('r+'),若省略了模式实参,python将默认的只读模式打开文件。

以写入('w')模式打开文件时要千万小心,如果指定的文件已经存在,python将在返回文件对象前清空该文件。

python只能将字符串写入文本文件,要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

函数write()不会在写入的文本末尾添加换行符。

如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式代开文件。

异常

 每当发生让python不知所措的错误时,他都会创建一个异常对象,如果你编写了处理该异常的代码,程序将继续运行,吐过未处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。异常是使用try-except处理的

try:
    print(5/0)
except ZeroDivisionError:
    print("You can't divide by zerol")

try-except还包含一个else代码块,如果未发生错误将执行else内的代码

存储数据

模块json让你能够将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以用json在python程序之间分享数据。更重要的是,json数据格式并非python专用的,这让你能够以json格式存储的数据与使用其他编程语言的人分享。

函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。

import json

numbers = [2,3,4,5,7,11,13]

filename = 'numbers.json'
with open(filename,'w') as f_obj:
    json.dump(numbers,f_obj)

使用json.load()讲列表读取到内存中

import json

filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)

print(numbers)

重构

代码能够正确的运行,但可以进一步的改进---讲代码划分为一系列完成具体工作的函数。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值