需要导入OS模块
import os
1.路径
1.1构建通用路径
WIndows Linux OS系统上路径分隔符不一样,所以最好统一
os.path.join('usr','bin','temp')
1.2当前目录
获取当前目录路径
os.getcwd()
改变当前路径
os.chdir(path)
1.3绝对路径与相对路径
绝对路径:总是从根文件夹开始
.\ 代表当前路径
相对路径:相对于程序的当前工作目录
..\ 代表父目录路径
1.4处理绝对路径和相对路径
os.path.abspath(path) :将相对路径转为绝对路径
os.path.isabs(path) :判断是否绝对路径
os.path.relpath(path,start) :返回从start路径到path的相对路径的字符串。没 start使用当前
os.path.basename(filepath) :返回文件路径最后的文件名
os.path.dirname(filepath) :返回文件路径的文件名 os.path.split(filename): 分别返回文件路径名和文件名
import os
path=os.path.join("C:\\","Users","lenovo")
print(path)
print(os.getcwd())
#os.chdir(path) #cd ..
print(os.getcwd())
print(os.path.abspath("..\\"))
print(os.path.isabs(os.getcwd()))
print(os.path.relpath("C:\\MinGW",".\\"))
#返回从start路径到path的相对路径的字符串
print(os.path.basename(os.getcwd()+"\\test4.py"))
#从一个文件的全路径返回一个文件的名称
print(os.path.dirname(os.getcwd()+"\\test4.py"))
# 返回文件路径的文件名
print(os.path.split(os.getcwd()+"\\test4.py"))
# 返回的是元组: 文件的全路径 文件全称,包括全路径
1.5查看路径有效性
os.path.exists(path): 检查路径是否存在
os.path.isfile(path):检查文件是否存在
os.path.isdir(path) :检查文件夹是否存在
2.文件夹与文件
2.1创建文件夹
os.makedirs(path)
2.2文件的打开与关闭
基本操作流程:
打开文件,或者新建立一个文件
读/写数据
关闭文件
打开文件:
使用open函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件名,访问模式)
比如:
f = open('test.txt', 'w')
访问模式列表
关闭文件:
调用close()函数
f.close()
.2.3文件读写
write函数:向文件写入数据
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()
注意:如果文件不存在则创建,如果存在则先清空,然后写入数据
read(num)函数:以从文件中读取数据,num表示要从文件中读取的数据的长度(单位 是字节),
如果没有传入num,那么就表示读取文件中所有的数据
f = open('test.txt', 'r')
content = f.read(5)
print(content)
print("-"*30) content = f.read()
print(content)
f.close()
注意:
如果open仅仅读取一个文件,那么可以不用写打开的模式,即只写 open('test.txt') 如果使用读了多次,那么后面读取的数据是从上次
读完后的位置开始的 读取的文件如果包含中文时,最好open('test.txt',encoding='utf-8')
readlines()函数:readlines可以按照行的方式把整个文件中的内容进行一次性读取,并
且返回的是一个列表,其中每一 行的数据为一个元素
f=open('test.txt',encoding='utf-8')
lines=f.readlines()
for line in lines:
print(line)
tell()函数:获取当前读写的位置
seek(offset,from)函数:定位到某个位置
offset:偏移量
from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
2.4文件和文件夹的复制
需导入shutil模块
shutil.copy(原路径,目标路径)
shutil.copytree(原路径,目标路径)
注意:
copy(文件路径,文件夹路径):将文件复制到文件夹
copy(文件路径,文件路径):复制文件并重命名os.rename()
copytree复制文件夹所有内容!
#hehe.txt->haha.txt
oldFile=open("hehe.txt","r")
newFile-open("haha.txt","w")
info=oldFile.read()
newFile.write(info)
oldFile.close()
newFile.close()
f=open("Listen.mp3","rb")
info=f.read()
print(info)
newf=open("Listen_copy.mp3","wb")
newf.write(info)
f.close()
newf.close()
# python下载软件 pip install shutil
2.5文件和文件夹的移动与改名
shutil.move(目标,目的)
注意:
目标为文件,目的为已知目录,则移动文件
目标为文件,目的为路径不存在的目录,则为文件无后缀名
目标为文件,目的为文件,则移动文件并改名
目标为文件,目的为路径不存在的文件 报错
2.6文件和文件夹的删除
os.unlink(path) 删除文件
os.remove(path)
os.rmdir(path) 删除文件夹,必须为空
shutil.rmtree(path) 删除文件夹,全删
安全删除:
需导入send2trash模块
send2trash.send2trash(aim)
删除时入回收站,但不恢复
import os
import shuttil
ipmort send2trash
import shelve
#os.unlink("b")
#os.remove("lala.txt")
#os.rmdir("abc") #删除文件夹,该文件夹必须为空
#shutil.rmtree("a") #a为多文件
#rm -rf
#send2trash.send2trash("cba")
#推荐删除 安全
shel=shelve.open("config.info")
shel["name"]="张三"
shel.close()
shel=shelve.open("config.info")
nam=shel["name"]
print(name)
shel.close()
另:将二进制数据(变量)持久化保存
写入操作
导入shelve库
shelf=shelve.open('文件') 打开文件,没有则新建
shelf[key]=value 以键值对方式保存 类似于字典
shelf.close() 关闭
读取操作
导入shelve库
shelf=shelve.open('文件') 打开文件,没有则新建
shelf[key]读取数据
shelf.close() 关闭
同样拥有keys(),values()方法获取所有键和值