Python文件处理和异常处理基础知识

  • 文件默认注释及文件改名:
    (1)下面这些是File–>Setting设置里面的 coding and template 修改得到的 ‘’’
    (2)改demo2.py名字:右键demo2.py–>找到Refactor–>找到rename == 点击即可改名
    #-- coding = utf-8 --
    #@Time:2020/11/6 16:40
    #@Author:Yajing Wang
    #@File: demo2.py
    #@Software:PyCharm

文件处理

文件访问模式

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

文件操作

  • 主要笔记记录如下:
#-*- coding = utf-8 -*-
#@Time:2020/11/6 16:40
#@Author:Yajing Wang
#@File: demo2.py
#@Software:PyCharm

'''上面这些是File-->Setting设置里面的 coding and template 修改得到的 '''
#改demo2.py名字:右键demo2.py-->找到Refactor-->找到rename == 点击即可改名

f = open("dmeot.txt","w") #打开文件,若为“w”模式(写模式),文件不存在时新建
f.write("hello world") #字符串写入demot.txt文件
f.close()#关闭demot.txt文件
f = open("dmeot.txt","r")#打开文件读操作
#read方法开始时定位在文件头部,每执行一次,向后移动指定字符数
content = f.read(5) #读f中的前五个单词出来,即为hello
print(content)
content = f.read(5) #读f中的前五个单词出来,即为hello
print(content)    #这里读出来的是“ worl”,不是总定位在开头
f.close() #关闭文件


f = open("dmeot.txt","a")#如果写利用“w”会把前面内容覆盖
f.write("\nnihaoya")
f.close()
f = open("dmeot.txt","r")
content = f.readlines()#一次性读取所有内容
print(content)
#逐行输出
i=1
for temp in content:
    text = f.readline()#逐行输出
    print(text)
    print("%d:%s"%(i,temp))
    i += 1
f.close()


#可以引入一个os
import os
#os包里有很多文件读取,删除,重命名等函数

异常处理

'''
#发生异常
print("-------test-------1-")#能读出这一段

#f = open("123.txt","r")#用只读模式打开文件发生异常

print("-------test-------2-")#前面一句发生异常,不能读出

print("==============================================================")
'''
'''
#捕获异常:
try:
    print("-------test-------1-")
    f= open("123.txt","r")
    print("-------test-------2-")
except IOError:   #文件没找到属于io异常,即输入输出异常
    pass      #捕获异常后所执行的代码
print("==========================================")
try:
    print(num)
except NameError:#异常类型想要被捕获,需要类型一致(这里就不能IOError)
    print("you are wrong!")
'''
'''
#将上面两个捕获异常合起来可以这样写:
try:
    print("-------test-------1-")
    f= open("123.txt","r")
    print("-------test-------2-")

    print(num)
#(IOError,NameError)属于Exception里面,所有错误都可以用Exception表示
except (IOError,NameError):#将所有可能长生的类型放入括号捕获
    print("you are wrong!")

#获取错误描述:
try:
    print("-------test-------1-")
    f= open("123.txt","r")
    print("-------test-------2-")

    print(num)
except (IOError,NameError)as result:#将所有可能长生的类型放入括号捕获
    print("you are wrong!")
    print(result)
'''
#保障不管文件是否异常,都会关闭,便于下次对文件进行操作
#try...catch...finally===不管异常与否,finally都会执行
import time
try:
    f = open("dmeot.txt","r")
    try:
        while true:
            content = f.readline()
            if len(content) == 0:
                break
            time.sleep()
            print(content)
        finally:
            f.close()
            print("文件关闭")
except Exception :
    print("you wrong !")



复制古诗作业:

#作业
#写入古诗
f = open("gushi.txt","w",encoding="utf-8")
f.write("""                                   青玉案·元夕
                                     辛弃疾
        东风夜放花千树。更吹落、星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。
        蛾儿雪柳黄金缕。笑语盈盈暗香去。众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。""")

f.close()
#显示古诗
f = open("gushi.txt","r",encoding="utf-8")
content = f.readlines()
for temp in content:
    print(temp,end="")
#复制古诗
try:
    f = open("gushi.txt","r",encoding="utf-8")
    c = open("copy.txt", "w", encoding="utf-8")
    try:
        while True:
            content = f.readline()
            if len(content) == 0:
                break
            c.writelines(content)
    finally:
        f.close()
        c.close()
        print("\n        ok,it's done")
except Exception as result:
    print("发生异常。。。")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值