文件的打开和关闭
文件的打开
使用open函数来打开文件
open(文件名[,访问模式])
使用open函数打开文件时,如果没有注明访问模式,则必须保证文件是存在的,否则会出现异常
文件模式
r: 只读方法打开文件;
w:写入,如果文件存在则将其覆盖;如果文件不存在,创建新文件进行写入
a: 打开一个文件在文件末尾追加;若文件不存在,创建新文件进行写入
以上三种后面若加b,如rb,表示以2进制格式打开用于只读;若后面是+号,如r+表示读写(+可以立即为添加权限);若添加b和+,如:rb+表示以二进制格式打开用于读写
文件的关闭
凡是打开的文件,要使用close方法关闭。即使文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都要使用close方法关闭文件,否则一旦程序崩溃,可能导致文件中的数据没有保存
# 新建一个文件,文件名test.txt
file = open('test.txt', 'a+')
# 关闭文件
file.close()
文件的读写
写文件
向文件中写入数据,使用write方法来完成。在操作某个文件时,每调用一次write方法,写入的数据就会追加到文件末尾
例:
# 新建一个文件,文件名test.txt
file = open('test.txt', 'a+', encoding="utf-8")
# 写入数据
for i in range(5):
file.write("Python文件操作\n")
# 关闭文件
file.close()
写入汉字有可能会出现乱码,最好这样:file = open('test.txt', 'a+', encoding="utf-8")
读文件
1、使用read方法读取文件
file.read(size)
size表示要从文件中读取的数据长度,单位为字节。如果没有指定size,那么表示读取文件的全部数据
2、使用readlines方法读取文件
file.readlines()
若文件的内容很少,可以使用readlines方法把整个文件的内容进行一次性读取。readlines方法会返回一个列表,列表中的每一个元素为文件中的每一行数据
3、使用readline方法按行读取数据
file.readline()
文件的定位读取
1、使用tell方法获取文件当前的读写位置
该方法会返回文件指针的当前位置
pos=file.tell()
2、使用seek方法定位到文件的指定读写位置
如果要从指定的位置开始读取或者写入文件的数据,可以使用seek方法
seek(offset[,whence])
offset:表示偏移量,需要移动的字节数
whence:表示方向
(1)SEEK_SET或者0:默认值,表示从文件的起始位置开始偏移
(2)SEEK_CUR或者1:表示从文件当前的位置开始偏移
(3)SEEK_END或者2:表示从文件末尾开始偏移
例1:使用seek方法定位到文件的指定位置
file = open("test.txt", "r")
words = file.read(15)
print("读取的数据是:", words) # Hello World!Hel
# 查找当前位置
pos = file.tell()
print("当前文件的位置是:", pos) # 15
# 重新设置位置
file.seek(4)
pos = file.tell()
print("当前文件的位置是:", pos) # 4
file.close()
例2:将文件的读写位置定位到文件末尾4字节处
file = open("test.txt", "rb")
words = file.read(3)
print("读取的数据是:", words)
# 查找当前位置
pos = file.tell()
print("当前文件的位置是:", pos) # 3
# 重新设置位置
file.seek(-4,2)
pos = file.tell()
print("当前文件的位置是:", pos) # 56
file.close()
注:没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。
文件的重命名和删除
重命名
import os
os.rename(src,dst)
src指定是需要修改的文件名,dst指的是修改后的新文件名
文件的删除
os.remove(path)
文件夹的相关操作
创建文件夹
os.mkdir(path)
获取当前目录
os.getcwd()
改变默认目录
os.chdir(path)
删除文件夹
os.remove(文件夹)