文件操作

1.打开文件

  open(文件名,访问模式)

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

访问模式说明:

 访问模式 

 说明                                                         

    r     

 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 

    w     

 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 

    a     

 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。

新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 

    rb    

 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 

    wb    

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

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

    ab    

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

如果该文件不存在,创建新文件进行写入。 

    r+    

 打开一个文件用于读写。文件指针将会放在文件的开头。           

    w+    

 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 

    a+    

 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。

文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 

   rb+    

 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 

   wb+    

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

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

   ab+    

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

如果该文件不存在,创建新文件用于读写。 

2.读取文件内容

文件内容:

python启动报错 file too short python打开文件异常处理_打开文件

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

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

输出结果:

python启动报错 file too short python打开文件异常处理_文件指针_02

 ②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"])

python启动报错 file too short python打开文件异常处理_文件指针_03

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---')

 报错信息:

python启动报错 file too short python打开文件异常处理_打开文件_04

此时我们


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


再次运行程序:

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

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

python启动报错 file too short python打开文件异常处理_文件指针_05

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

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

运行结果:

python启动报错 file too short python打开文件异常处理_文件指针_06

当没有捕捉到异常时,执行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("我执行了这一步")

运行结果:

python启动报错 file too short python打开文件异常处理_python_07

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

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