函数
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)
文件练习:
- 通过python新建一个文件故事.txt,选择以一首古诗写入。
- 另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,在控制台输出复制完毕
- 提示:分别定义两个函数完成读写操作
- 添加异常处理
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)