Python基本文件操作
文件操作的作用
思考:什么是文件?
思考:文件操作包含什么?
答:打开、关闭、读、写、复制…
思考:文件操作的的作用是什么?
答:读取内容、写入内容、备份内容…
总结:文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。
文件的基本操作
文件操作步骤
- 打开文件
- 读写等操作
- 关闭文件
打开文件
语法
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:
f=open(name, mode)
-
name:是要打开的目标文件的路径字符串。
-
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
-
f
变量用于接受open
函数返回的对象
打开模式
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。文件不存在,则会报错(read) |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。(write) |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。(attach) |
b | 以二进制格式打开文件 (binary) |
+ | 读写模式 |
r/w/a
可与b/+
组合,rb/wb/ab
可与+
组合
文件对象方法
写
语法
f.write(text)
f
为打开文件时接收到open
返回文件对象的变量- text为想要写入的字符串
如:
# 1. 打开文件
f = open('diary.txt', 'w')
# 2.文件写入
f.write('今天的任务:睡大觉\n')
f.write('明天的任务:摆大烂\n')
f.write('后天的任务:做大梦\n')
f.write('最终的任务:醒大悟\n')
# 3. 关闭文件
f.close()
注意:
w
和a
模式:如果文件不存在则创建该文件;如果文件存在,w
模式先清空再写入,a
模式直接末尾追加。r
模式:如果文件不存在则报错。
读
read()
f.read(num)
num
表示要从文件中读取的数据的长度(单位是字节),如果没有传入num
,那么就表示读取文件中所有的数据。
readlines()
textlines=f.readlines()
textlines
用于接受readlines
的返回值——一个由文件每行内容的字符串组成的列表。
如:
f = open('diary.txt')
textlines= f.readlines()
print(textlines)
#['今天的任务:睡大觉\n', '明天的任务:摆大烂\n', '后天的任务:做大梦\n', '最终的任务:醒大悟\n']
for textline in textlines:
print(textlines)
"""
今天的任务:睡大觉
明天的任务:摆大烂
后天的任务:做大梦
最终的任务:醒大悟
"""
# 关闭文件
f.close()
readline()
textline=f.readline()
readline()
一次读取一行内容,返回该行的字符串。
如:
f = open('diary.txt')
textline = f.readline()
print(f'第1行:{textline}')
"""
第1行:今天的任务:睡大觉
"""
for i in range(2,5):
textline = f.readline()
print(f'第{i}行:{textline}')
"""
第2行:明天的任务:摆大烂
第3行:后天的任务:做大梦
第4行:最终的任务:醒大悟
"""
# 关闭文件
f.close()
seek()
作用:用来移动文件指针。
语法如下:
f.seek(cookie, whence=0)
- cookie为偏移量,whence为参考位置
whence可取的值
- 0:文件开头
- 1:当前位置
- 2:文件结尾
关闭
f.close()
- 请务必记得关闭文件
文件和文件夹的操作
os模块
在Python中文件和文件夹的操作要借助os(operating system)模块里面的相关功能,具体步骤如下:
- 导入os模块
import os
- 使用
os
模块相关功能
os.fuction()
文件/文件夹的重命名/剪切
os.rename(src, dst)
src
:source。即旧文件路径字符串。dst
:destination。即新文件路径字符串。- 将
src
重命名或剪切到dst
删除文件
os.remove(path)
- path为想删除文件的路径字符串
创建文件夹
os.mkdir(path)
-
path
为想创建文件夹的路径字符串 -
make directory的简称
文件夹是否存在
os.path.isdir(path)
- path是文件夹则返回
True
,不是返回False
删除文件夹
os.rmdir(path)
path
为想删除文件夹的路径字符串- remove directory的简称
获取当前工作目录
cwd_path=os.getcwd()
- 用于获取当前工作的路径(常用于命令行程序)
- get current working directory的简称
修改当前工作目录
os.chdir(path)
- 移动到path,并修改当前工作目录为path
- change directory的简称
获取某文件夹下所有文件/文件夹名
files=os.listdir(path)
- 返回一个由
path
路径文件夹下所有文件/文件夹名组成的列表,这里由files
接受 - list directory的简称
实例–解开某一文件夹
需求:
指定某一文件夹名,将该文件夹删除,但文件夹中的文件/文件夹保留在被删除的文件夹所在目录
import os
def destoryDir(path):
"""解开path路径下的文件夹"""
#判断path是否是有效文件夹路径·
if os.path.isdir(path):
print("开始解开",path,"···")
else:
print("错误文件夹路径!")
return
index=path.rfind("/")
if index==-1:
#没找到"/",说明是当前目录下的文件夹
files=os.listdir(path) #获取文件夹下的文件/文件夹
for file in files:
now=path+"/"+file #现在的文件路径
future=file #文件路径前进
os.rename(now,future) #剪切
else:
#找到"/",说明不是当前目录下的文件
files=os.listdir(path) #获取文件夹下的文件/文件夹
for file in files:
now=path+"/"+file #现在的文件路径
future=path[0:index]+"/"+file #文件路径前进
os.rename(now,future) #剪切
os.rmdir(path) #删除文件夹
print("已成功解开!")
destoryDir("todestory")
效果:
未解时
解的过程中
解之后