python从入门到实践读书笔记(六)

python从入门到实践读书笔记(六)

tag: python从零开始学习
种一棵树最好的时候,十年前或者今天!

第十章 文件和异常

增强程序的可用性、稳定性、健壮性。

从文件中读取数据

关键字with在不需要访问文件时关闭文件,也可以通过open()和close()方法来打开和关闭文件。但是一般不建议这么做。

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

或者写明模式

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

还可以使用切片打印其中一部分。

with open('E://pi_digits.txt') as file_object:
    lines = file_object.read()

contents = ''
for line in lines:
    contents += line.strip()
    # 删除每一行左边和右边的空格

print(contents)
print(contents[:20])
print()
print(len(contents))

输出结果

3.141592653589793238462643383279
3.141592653589793238

可以使用文件名(在当前文件夹),相对路径(在当前文件夹下的文件夹中),绝对路径(在外部文件夹中)

逐行读取
print("---***分割线***----")
with open('E://pi_digits.txt') as file_object:
    for line in file_object:
        # line = file_object.read()
        print(line.rstrip())

使用with关键字时,open()返回的文件对象只在with代码块内可用。如果要在在with代码块外部访问文件内容,可以在with代码块内将文件的各行存储在一个列表中。
readline()方法从文件中读取每一行。

写入数据到文件

filename = 'E://pi_happy.txt'
# 写入
with open(filename, 'w') as f:
    f.write("I like c/C++ "+contents)
# 检查
with open(filename) as f1:
    str = f1.read()
    print(str.upper())

注:python只能将字符串写入文本文档,其他格式数据写入需要格式转换。

写入多行

write()函数不会在写入的文本末尾添加换行符。在写入多行时需要指定换行符。

添加到文件

附加文件。
打开文件时,指定实参‘a’

filename = 'E://pi_happy.txt'
# 附加
with open(filename, 'a') as f:
    f.write("I like c/C++ \n")
    f.write("becase 我想要高效率地分析处理数据.\n")
# 检查
with open(filename) as f1:
    str = f1.read()
    print(str.upper())

异常处理

python中用try-except包围可能发生异常的代码块。

简单的异常处理

try:
    print(5 / 0)
except ZeroDivisionError:
    print("don't divide by zero!")

将依赖于try-except代码块成功执行的代码放到else代码块中
,如:

else:
    print("No answer!")
在发现异常时,一声不吭

如果想要让python发现异常后不作处理,
在except代码块中使用pass语句。

注:在pass语句之前的代码还是会被执行

存储数据

重点:json
json特点:轻便、有用、易于学习。

在用户关闭程序时,存储其提供的信息,常使用json文件。

json的优点:可以将简单的python数据结构存储到文件中,并在程序重新使用时加载其中的数据。还可以利用json在python程序或者其他语言程序之前分享数据。

import json

number = [2,23,45,67,8,90,23,44]
# 指定其存储的文件名以及文件格式(json)
filename = 'E://number.json'
# 使用json.dump()方法,将列表中数据存储到文件中
with open(filename, 'w') as f1:
    json.dump(number, f1)
# 使用json.load()方法,加载文件中的数据
with open(filename) as f2:
    numbers = json.load(f2)

print(numbers)

重构

目的:让代码更加清晰,更容易理解、更容易扩展维护。

后期代码越来越多时, 就需要对代码进行重构。

在最终版本中,每个函数都执行单一而清晰的任务。其返回值只有预先设计好的简单的几种

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值