Python_05 python文件操作和异常处理

文件操作

1.打开文件

  open(文件名,访问模式)

f=open('./aaa.txt','w')#以写入模式打开aaa.txt   ./代表当前目录

访问模式说明:

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

 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。

 如果该文件不存在,创建新文件。 

    ab     以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。
如果该文件不存在,创建新文件进行写入。 
    r+     打开一个文件用于读写。文件指针将会放在文件的开头。           
    w+     打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 
    a+     打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。
文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 
   rb+     以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 
   wb+    

 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。

如果该文件不存在,创建新文件。 

   ab+     以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。
如果该文件不存在,创建新文件用于读写。 

2.读取文件内容

文件内容:

 ①read 读取文件全部内容,读取出来为字符串

f=open("./aaa.txt","r",encoding="utf8")
print(f.read()+'\n')

 输出结果:

 ②readline 读取一行,可以指定读取的字符数

f=open("./aaa.txt","r",encoding="utf8")

print(f.readline(2)+'\n')

 输出结果:

③readlines 按行读取所有内容,结果是列表

f=open("./aaa.txt","r",encoding="utf8")
print(f.readlines())

输出结果:


f=open("./aaa.txt","w+")
f.writelines(["hello","python","hello","world"])

3.对文件写入

①write:覆盖原内容

f=open("./aaa.txt","w+")
f.write("hello python")

②writelines 在原内容后面添加,参数为list型

f=open("./aaa.txt","w+")
f.writelines(["hello","python","hello","world"])

4.关闭文件

f.close()

5.文件备份

代码实

现原理:

以读的方式打开文件
oldFile = open(oldFileName,'rb')

# 提取文件的后缀
fileFlagNum = oldFileName.rfind('.')
if fileFlagNum > 0:
	fileFlag = oldFileName[fileFlagNum:]

# 组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag

# 创建新文件
newFile = open(newFileName, 'wb')

# 把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
	newFile.write(lineContent)

# 关闭文件
oldFile.close()
newFile.close()

6.文件重命名

rename(原名,新名)

import os
os.rename("aaa.txt", "aaa(1).txt")

7.删除文件

import os
os.remove("aaa.txt")

8.创建文件夹

import os
os.mkdir("abc")

9.获取当前目录 

import os 
os.getcwd()

10. 获取目录列表 

import os
os.listdir("./") 

11. 删除文件夹 

import os
os.rmdir("abc")

异常处理

异常:当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"

目的:为了不让程序执行中断,可以捕获异常并给出相应的处理,而不是报错

举例:以r模式打开123.txt,而该文件不不存在,运行程序就会报错

print('-----test--1---')
open('123.txt','r')
print('-----test--2---')

 报错信息:

此时我们

* 把可能出现问题的代码,放在try中
* 把处理异常的代码,放在except中

再次运行程序:

try:
	print('-----test--1---')
	open('123.txt','r')
	print('-----test--2---')
except FileNotFoundError:
	print("FileNotFoundError")
print("我执行了这一步")

运行结果就没有报错了,可以执行异常后面的代码

 当捕获多个异常时,可以把要捕获的异常的名字,放到except 后,并使用元组的方式仅进行存储

try:
	print('-----test--1---')
	open('123.txt','r')
	print('-----test--2---')
except (FileNotFoundError,IOError):
    if FileNotFoundError:
        print("FileNotFoundError")
    if IOError:
        print("IOError")
print("我执行了这一步")

运行结果:

当没有捕捉到异常时,执行else中的事件

try:
	print('-----test--1---')
	#open('123.txt','r')
	print('-----test--2---')
except (FileNotFoundError,IOError):
    if FileNotFoundError:
        print("FileNotFoundError")
    if IOError:
        print("IOError")
else:
    print("我执行了这一步")

运行结果:

一个段代码必须要执行,无论异常是否产生都要执行,那么此时就需要使用finally。

 比如文件关闭,释放锁,把数据库连接返还给连接池等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

luanbucht

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

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

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

打赏作者

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

抵扣说明:

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

余额充值