python之文件操作及其错误与异常

文件操作

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
rb+以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
f = open("test.txt", "w")  # 打开文件,w模式,文件不存在则新建

f.write("hello world")   # 将字符串写入文件中

f.close()   # 关闭文件
  • read方法,读取指定的字符,开始时定位在文件头部,每执行一次,向后移动指定数
f = open("test.txt","r")

content = f.read(5)
print(content)

content = f.read(5)
print(content)

f.close()
# readlines方法,读完所有文档,形成一个列表
f = open("test.txt","r")

content = f.readline()
print(content)  # 直接打印,每次读一行

content = f.readline()
print(content)  # 直接打印
print("-" * 100)

content = f.readlines()
print(content)  # 直接打印
print("-" * 100)

i = 1
for temp in content:
    print("%d:%s " %(i,temp))  # 分行打印
    i += 1

f.close()
  • os模块
import os

os.rename("test.txt", "retest.txt")

文件错误与异常

print("test1")

f = open("123.txt", "r")     # 只读模式打开不存在文件,报错

print("text2")   			#  这句代码不会执行
  • 捕获异常
try:
    print("test1")

    f = open("123.txt", "r")

    print("text2")

except IOError:    # 文件没找到,属于IO异常(输入输出异常)
    pass		  # 捕获异常后,执行的代码

try:
    print(num)
except NameError:
    print("NameError")

try:
    print("test1")

    f = open("123.txt", "r")

    print("text2")

    print(num)
except (NameError,IOError):   # 将可能出现的错误都放在这里
    print("出现错误")
  • 获取错误描述
try:
    print("test1")

    f = open("123.txt", "r")

    print("text2")

    print(num)
except (NameError,IOError) as result:
    print("出现错误")
    print(result)
  • 获取所有异常
try:
    print("test1")

    f = open("123.txt", "r")

    print("text2")

    print(num)
except Exception as result:  # Exception可以承接任何异常
    print("出现错误")
    print(result)
  • 异常处理
import time

try:
    f = open("123.txt", "r")

    try:
        while True:
            content = f.readline()
            if len(content) == 0:
                break
            time.sleep(2)
            print(content)
    finally:                                # 无论如何一定会执行的
        f.close()

except Exception as result:
    print("发生异常")
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LibraFree

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值