函数,文件操作及异常处理

本文介绍了Python编程中关于函数的使用,包括返回多个值、全局变量的修改。接着讲解了文件操作的多种模式,如读写、追加等,并展示了读取文件为列表和写入文件的示例。此外,还详细阐述了异常处理机制,如何捕获并处理IOException、NameError等异常,以及try...finally结构确保文件关闭。最后提供了一个实际的文件操作例子,涉及文件的创建、读取和复制,并包含异常处理。
摘要由CSDN通过智能技术生成

函数

return可以返回多个值,需要用多个变量接收

'''
def 函数名:
    代码
'''
#在函数中修改全局变量
a = 10
def test1():
    global a#生命全局变量在函数中的标识符
    a=30
test1()
print(a)

文件操作

  • r         以只读方式打开文件,指针放在文件开头,还是默认模式
  • w        打开一个文件用于写入,如果文件已经存在就将其覆盖,如果不存在就创建新文件。
  • rb       以二进制格式打开一个文件用于只读。文件指针放于文件开头。默认模式。
  • wb      以二进制格式打开文件用于写入,如果文件已存在将其覆盖,不存在就创建新文件。

读取文件为列表,每行为一个元素 

#写文件
f = open("test.txt","w")#打开文件,w模式(写),文件不存在就新建
f.write("明月照亮了你的窗子\n""你照亮了别人的梦\n""仲夏夜之梦")
f.close()#关闭文件

f = open("test.txt","r")
content = f.readlines()    #一次性读取全部文件为列表,每行一个字符串元素
print(content)
#打印出列表内的内容
i=1
for temp in content:
    print("%d:%s"%(i,temp))
    i=i+1
#读一行
content1=f.readline()
print(content1)

OS模块          import os 

  • 文件重命名: os.rename("原名.txt","改名.txt")
  • 删除文件:os.remove("删除.txt")
  • 创建文件夹:os.mkdir("新文件夹")
  • 获取当前目录:os.getcwd()
  • 改变默认目录:os.chdir("../ ")
  • 获取目录列表:os.listdir(" ./ ")
  • 删除文件夹:os.rmdir("待删除文件夹")

异常处理

发生异常

print("-----打开文件------")
f = open("123.txt","r")#打开了一个不存在的文件(处理前会报错)
print("------成功打开------")#这句代码不会被执行

报错: f = open("123.txt","r")#打开了一个不存在的文件(处理前会报错)
FileNotFoundError: [Errno 2] No such file or directory: '123.txt'

异常处理

#捕获异常
try:
    print("-----打开文件------")
    f = open("123.txt","r")#打开了一个不存在的文件
    print("------成功打开------")#这句代码不会被执行
except IOError: #未找到文件属于IO异常输入输出异常
    #pass#捕获异常后执行的代码
    print("文件不存在")

多个异常处理:

#捕获异常
try:
    print("-----打开文件------")
    f = open("hh.txt","r")#打开了一个存在的文件
    print("------成功打开------")#这句代码不会被执行
    print(name)#输出了不存在的变量
except (IOError,NameError):#将可能产生的异常类型,放在小括号中。
    print("产生错误了")

错误信息获取:

#获取错误描述
try:
    print(name)#输出了不存在的变量
except (IOError,NameError) as result:
    print("产生错误了")
    print(result)

捕获所有的异常

try:
    print(name)#输出了不存在的变量
except Exception as result:#Exception可以承接任何异常
    print("产生错误了")
    print(result)

try.......finally  异常后关闭文件

#try...finally  和嵌套
import time
try:
    f = open("hh.txt","r")#打开了一个文件
    try:
        while True:
            content=f.readline()
            if len(content) == 0:
                break
            time.sleep(2)#休眠两秒后显示下一行内容
            print(content)
    finally:
        f.close()
        print("文件关闭")
except Exception as result:
    print("发生异常")
    print(result)

文件练习:

  1. 通过python新建一个文件故事.txt,选择以一首古诗写入。
  2. 另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,在控制台输出复制完毕
  3. 提示:分别定义两个函数完成读写操作
  4. 添加异常处理
    try:
        f = open("gushi.txt","w")
        f.write("独坐幽篁里\n""弹琴复长啸\n""深林人不知\n""明月来相照\n")
        f.close()
        def duqu():
            a=open("gushi.txt","r")
            content=a.readlines()
            for i in content:
                print(i)
            b = open("gushi.txt", "w")
            b.write(a.read())
            print("复制完毕")
            b = open("copy.txt", "r")
            content1 = b.readlines()
            for i in content1:
                print(i)
            a.close()
            b.close()
            print("文件成功关闭")
            # a.close()
            # b.close()
        duqu()
    except Exception as result:
        print("发生异常%s"%result)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值