Java工程师学快速Python(4)----- I/O与异常处理

本文详细介绍了Python中文件的基本操作,包括不同模式下的读写功能,并通过实例演示了如何使用pickle模块进行对象的序列化与反序列化。此外,还深入探讨了Python异常处理机制,包括try-except-else-finally语句的使用,以及with语句在资源管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读和写文件

open()将会返回一个file对象,基本语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode参数的定义可以看下面这张表

 

模式rr+ww+aa+
++ + +
 +++ +
创建  ++++
覆盖  ++  
指针在开头++++  
指针再末尾    ++

举几个例子:


#读取文件
f1 = open("/Users/ace/PycharmProjects/pythonSt/a.txt","r")
f1.readlines 读取多行
f1.readline 读取单行
for x in f1:
    print(f1)
  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:

f.seek() 类似java中的RandomAccessFile 移动指针位置

f.tell() 方法, 来确定 文件流的位置

pickle 模块

类似java中的对象流,把对象写入文件中

完整例子

import pickle
data1 = {'a': [1, 2.0, 3, 4+6j],
         'b': ('string', u'Unicode string'),
         'c': None}
output = open('data.pkl', 'wb')
pickle.dump(data1,output)  //把对象写入文件中
output.close()
intput = open('data.pkl','rb')
print(pickle.load(intput))  //把对象从文件中读取出来

==================================华丽的分割线==========================================

下面这个例子说明了异常中的所有关键字

 

for x in [1,2,3,4,"12fdsfds"]:
    try:
        int(x)
    except ValueError:
        print("发生错误")
    except (NameError,RuntimeError,TypeError):
        print("其他错误")
    except:
        pass
    else://没有发生异常时候执行
       print("no exption")
    finally://无论如何都会执行。和java类似
        print("all")
with open("myfile.txt") as f:
    for line in f:
        print(line)
with 语句使得文件之类的对象可以 确保总能及时准确地进行清理。
语句执行后,文件 f 总会被关闭,即使是在处理文件中的数据时出错也一样。其它对象是否提供了预定义的清理行为要查看它们的文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值