A、文件的打开和关闭
1、文件的打开
在Python中,open方法用来打开文件
语法格数如下:
open[文件名[, 访问模式]]
文件名为必填,访问模式为选填
smcs = open('Test.txt')
如果没有表明访问模式,则必须保证文件存在,否则会出现异常
2、文件模式
如果使用open方法打开文件时,只带一个文件名,那么我们只能读取文件,如果想要在打开的文件中写入数据,就必须指明文件的访问模式
文件模式
访问模式 | 说明 |
---|---|
r | 默认模式。以只读方式打开文件,文件的指针将会凡在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果文件已存在,文件指针将放在文件的结尾。也就是说,新的内容将会被写入已有的内容之后。如果该文件不存在,创建新文件进行写入。 |
rb | 以二进制格式打开一个文件用于只读,文件指针将会被放在文件的开头 |
wb | 以二进制格式打开一个文件用于写入。如果文件已存在则将其覆盖。如果文件不存在,创建新文件。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
3、文件的关闭
凡是打开的文件,切记要使用close方法关闭。即使文件会在程序退出后自动关闭,但是考虑到数据的安全型,每次使用完文件后都要使用close方法关闭文件,否则一旦出现崩溃就很可能导致文件中的数据没有保存。
smcs = open('Test.txt')
smcs.close()
B、文件的读写
1、写文件
向文件写入数据,需要使用write方法来完成,在操作文件时,每调用一次write方法,写入的数据就会被追加到文件的末尾。
smcs = open('Test.txt', 'w')
smcs.write('Hello,World\n')
smcs.write('三木成森\n')
smcs.close()
运行结果:
2、读文件
1.使用read方法读取文件
定义:read(size)
size表示要从文件中读取的长度,如果没有指定size,默认读取全部数据。
smcs = open('Test.txt', 'r')
data = smcs.read()
print(data)
smcs.close()
运行结果:
2. readlines方法读取文件
若文件内容很少可以使用readlines
方法,对文件内的数据一次性读取,
readlines
会返回一个列表,列表中的每个元素为文件中的一行数据。
smcs = open('Test.txt', 'r')
data = smcs.readlines()
for item in data:
print(item)
smcs.close()
运行结果:
3、readline方法一行一行读取
smcs = open('Test.txt', 'r')
data = smcs.readline()
print(data)
data = smcs.readline()
print(data)
smcs.close()
运行结果:
3、文件的定位读写
- 使用tell方法来获取文件当前的读写位置
tell方法返回当前文件的位置
运行结果:smcs = open('Test.txt', 'r') data = smcs.read(4) print(data) print('当前位置:',smcs.tell()) smcs.close()
- 使用seek方法定位到文件的指定位置读写
如果需要从指定位置开始读写,就可以使用seek方法实现
语法定义:seek(offset[, whence])
seek方法参数介绍:- offset:表示偏移量,也就是需要移动的字节数
- whence:表示方向,该参数的值有三个
- SEEK_SET或者0:whence参数的默认值,表示从文件的起始位置开始偏移
- SEEK_CUR或者1:表示从文件当前的位置开始偏移
- SEEK_END或者2:表示从文件末尾开始偏移
运行结果:smcs = open('Test.txt', 'r') smcs.seek(11) print('当前位置:',smcs.tell()) data = smcs.read() print(data) smcs.close()
C、文件的重命名和删除
有时候需要对文件进行重命名、删除等一些操作,Python的OS模块包含了这些功能。
使用之前要引入OS模块
import os
1、文件的重命名(rename)
rename方法的语法定义:os.rename(src, dst)
src:要修改的文件名
dst:修改后的文件名
os.rename('Test.txt','三木成森.txt')
要修改的文件如果不存在将会报错
2、文件的删除(remove)
remove方法的语法定义:os.remove(path)
path:要删除的文件路径
os.remove('三木成森.txt')
要删除的文件如果不存在将会报错
D、文件夹的相关操作
os模块也可以对文件夹进行操作
同样也要先引入os模块
import os
1、创建文件夹(mkdir)
os.mkdir('三木成森')
要创建的文件如果已存在将会报错
2、获取当前目录(getcwd)
print(os.getcwd())
3、改变默认目录(chdir)
os.chdir('../')
4、获取目录列表(listdir)
os.listdir()
5、删除文件夹(rmdir)
os.rmdir('三木成森')
要删除的文件如果不存在将会报错