01
import os
path = os.path.dirname(__file__) #获取当前文件所在再目录
print(path)#F:\开发工具\pythonProject\basepython\day02
#拼接文件路径
path1 = os.path.join(path,'os01.py')
print(path1)#F:\开发工具\pythonProject\basepython\day02\os01.py
#路径中得到文件名字
file = 'F:\开发工具\pythonProject\basepython\day02\os01.py'
#截取文件名字
file1 = file[file.rfind('\\')+1:]#找到最后一个\,必须双斜杠,然后加一的位置往后截取
print(file1)
#absolute绝对路径
#isabs(path) 测试是否是一个绝对路径
#路径前面加r的意思是
r = os.path.isabs(r'F:\开发工具\pythonProject\basepython\day02\os01.py')
print('------->',r)
#相对路径’../day02/os01.py‘;../表示当前文件的上一级,表示day01的同一级day02
r = os.path.isabs(r'../day02/os01.py')
#表示跟多层装饰器.py同级的day02的os01.py
r = os.path.isabs(r'day02/os01.py')
#获取当前文件所在文件夹路径os.py,directory文件目录,dir开头就是文件夹名字
ss = os.path.dirname(__file__)
print('----------',ss)
#abspath
#给一个相对路径名字,返回一个绝对路径名
sf = os.path.abspath(__file__)
sf = os.path.abspath('os01.py')
总结:
#获取当前文件所在再目录path = os.path.dirname(__file__)#拼接文件路径path1 = os.path.join(path,'os01.py')#截取文件名字file1 = file[file.rfind('\\')+1:]#找到最后一个\,必须双斜杠,然后加一的位置往后截取#isabs(path) 测试是否是一个绝对路径r = os.path.isabs(r'F:\开发工具\pythonProject\basepython\day02\os01.py')#给一个相对路径名字,返回一个绝对路径名sf = os.path.abspath(__file__) sf = os.path.abspath('os01.py')
02
import os
# #路径中得到文件名字
file = r'F:\开发工具\pythonProject\basepython\day02\os01.py'
# #截取文件名字
# file1 = file[file.rfind('\\')+1:]#找到最后一个\,必须双斜杠,然后加一的位置往后截取
#另一种方式(以最后一个/切割 文件)
file1 = os.path.split(file)
#f就是文件名字
f = file1[1]
#找到的是扩展名字,fg[1]就是.py
fg = os.path.splitext(file)
#返回文件的大小,单位是字节
size = os.path.getsize(file)
#路径拼接F:\开发工具\pythonProject\basepython\day02\huitao\osos.py,允许传入多个参数
nw = os.path.join(os.getcwd(),'huitao','osos.py')
print('--------',nw)
#os的函数使用
#获取目录dir
dir = os.getcwd()
#判断当前目录下是否存在这个文件
if not os.path.exists(file):
pass
#返回目录下所有文件和文件夹名称dirs,['os01.py', 'os02.py']
dirs = os.listdir(r'F:\开发工具\pythonProject\basepython\day02')
print('........',dirs)
#创建文件夹,会在当前路径下创建文件夹
# bs = os.mkdir(r'ss.text')
#删除文件夹,会删除当前目录下的文件夹
bd = os.rmdir(r'ss.text')
print('........',bd)
#删除文件夹,删除当前文件路径下的文件夹
hu = os.removedirs(r'')
#删除文件,删除当前文件路径下文件
hj = os.remove(r'F:\开发工具\pythonProject\basepython\day02\huitao.text')
#程序循环删除代码,c:/pp路径下文都读出来,一个一个删除掉,当删除完文件时,删除文件夹
# pathh = os.listdir('c:/pp')
# for fil in pathh:
# ds = os.path.join('c:/pp',fil)
# os.remove(ds)
# else:
# os.rmdir('c:/pp')
#切换目录,然后查看路径
pi = os.chdir('c:/gus/11.txt')
#获取到切换后的目录
kpath = os.getcwd()
print('--------',kpath)
总结:
#另一种方式(以最后一个/切割 文件) file1 = os.path.split(file) #f就是文件名字 f = file1[1]#找到的是扩展名字,fg[1]就是.pyfg = os.path.splitext(file)#返回文件的大小,单位是字节size = os.path.getsize(file)#获取目录dirdir = os.getcwd()#路径拼接(后面可以增加多个参数)nw = os.path.join(os.getcwd(),'huitao','osos.py')#返回目录下所有文件和文件夹名称dirs,['os01.py', 'os02.py']dirs = os.listdir(r'F:\开发工具\pythonProject\basepython\day02')#创建文件夹,会在当前路径下创建文件夹bs = os.mkdir(r'ss.text')#删除文件夹,会删除当前目录下的文件夹bd = os.rmdir(r'ss.text')#删除文件夹,删除当前文件路径下的文件夹 hu = os.removedirs(r'') #删除文件,删除当前文件路径下文件 hj = os.remove(r'F:\开发工具\pythonProject\basepython\day02\huitao.text')#切换目录,然后查看路径 pi = os.chdir('c:/gus/11.txt') #获取到切换后的目录 kpath = os.getcwd()
利用上面api实现文件及文件夹的复制功能
03(文件及文件夹的复制)
import os
#文件的读写
#读 rb r(rb是多种文件,r是单个文件)
#写wb r
#复制文件和文件夹
path1 = 'c:/kus'
path2 = 'c:/jiji/sd'
def copyt(src_path,target):
#获取文件夹内容
filelist = os.listdir(path1)
#遍历列表
for file in filelist:
#拼接路径
path = os.path.join(path1,file)
#判断是文件夹还是文件
if os.path.isdir(path):
#如果是文件夹
#先创建一个文件夹,把wrr作为一个目标文件夹
wrr = os.path.join(target, file)
os.mkdir(wrr)
copyt(path,wrr)
#如果是文件直接复制
else:
with open(path, 'rb') as rstrem:
container = rstrem.read()
path3 = os.path.join(path2, file)
with open(path3, 'wb') as wstrem:
wstrem.write(container)
注释:
r = os.path.isabs(r'F:\开发工具\pythonProject\basepython\day02\os01.py')
路径前面r啥意思:
r
的作用和\\
的作用一样,都是为了防止程序将\
当作是转义字符,所以r
和\\
在写的时候使用一种方法就可以,当然如果路径是/
,那么就不需要涉及这些了。#r代表不转义,如果不加r那么""中就要加双反斜杠。