2020/6/25(目录相关)

Import os首先引入一个os的包

os.getcwd()查看当前在什么目录下,表示交互模式显示的路径

Dir(os):查看os的方法

os.makedirs():创建多级目录eg: os.makedirs("w/w/t")创建了3级目录,也不需要写绝对路径

os.mkdir()创建单个目录

os.rmdir(“xxx”)删除单级目录

os.removedirs("w/w/t")删除多级目录#删除的只能是为空,遇到非空会停止

Import shutil 中的rmtree会把目录非空或者空的都能删除,一般不使用,容易误操作

os.rename("lost.txt","lost"):重命名目录

os.chdir("d:\\Python3.8")切换目录

os.chdir(".."):返回目录上一级

os.listdir():当前路径包含哪些目录

os.path.split():将目录分解为目录名和文件名

os.path.splitext():分解文件名的扩展名

os.path.isfile(“文件”):判断一个路径是否是文件

os.path.isdir(“路径”):判断一个路径是否存在目录

举一个栗子:

os.mkdir("lost")#创建一个目录

os.chdir("lost")#切换到此目录

os.getcwd()#查看是否进入

os.path.join(“dir_name”,”file_name”)#拼接路径。dir_name目录名,file_name文件名

--》'd:\\lostt'#结果展示

open("wwt.txt","w")#新建一个文件,不需要写绝对路径,因为已经在此目录下

 

举一个栗子:建立一个5级目录的深度,每一层级的名字叫做“荷叶连田田1-10”

每一层目录下面,新建2个文件,文件1的内容是目录名,文件2的内容是“江南可采莲”

算法:首先引入包,建目录然后进入目录在目录里面建文件关闭

import os

os.chdir("d:\\lost")

for i in range(1,6):

    dirname="荷叶连田田"+str(i)

    os.makedirs(dirname)

    os.chdir(dirname)

    fp=open("文件1.txt","w",encoding="utf-8")

    fp.write(dirname)

    fp.close()

    fp=open("文件2.txt","w",encoding="utf-8")

    fp.write("江南可采莲")

    fp.close()

print("新建成功")

os.path.split():将目录分解为目录名和文件名

dir_name=os.path.split("D:\lost\聊赠一枝春1\文件2.txt")

dir_name

>>>('D:\\lost\\聊赠一枝春1', '文件2.txt')

dir_name=os.path.split("D:\lost\聊赠一枝春1\文件2.txt")[0]#[0]表示坐标位置第一个

dir_name

>>>'D:\\lost\\聊赠一枝春1'

file_name=os.path.split("D:\lost\聊赠一枝春1\文件2.txt")[1]

file_name

>>> '文件2.txt'

或者使用直接封装一个函数

dir_name="D:\lost\聊赠一枝春1\文件2.txt"

os.path.dirname(dir_name)#获取目录名

>>> 'D:\\lost\\聊赠一枝春1'

file_name="D:\lost\聊赠一枝春1\文件2.txt"

os.path.basename(file_name)#获取文件名

>>> '文件2.txt'

判断文件在不在的方法

举个栗子:

if not os.path.exists("大漠孤烟直.txt"):#判断如果文件不在就执行if

     fp=open("大漠孤烟直.txt","w",encoding="utf-8")#创建文件

     fp.write("长河落日圆")

     fp.close()

os.path.splitext()可以切割文件名和扩展名

 file_name="文件1.txt"

>>> os.path.splitext(file_name)

('文件1', '.txt')

判断是文件还是目录

 os.listdir()#查看该路径下所有目录或者文件

>>>['12', 'i', 'testing.txt', '两只黄鹂鸣翠柳1', '大漠孤烟直', '聊赠一枝春1']

os.path.isfile("12")

>>> False

os.path.isdir("12")

>>> True

#统计当前的文件有几个,目录有几个

import os

dir_path="d:\\lost"

file_count=0

dir_count=0

for i in os.listdir(dir_path):#遍历当前所有内容

    obj_path=os.path.join(dir_path,i)#相对路径的拼接变成,绝对路径

    if os.path.isfile(obj_path):#判断是否是文件

        file_count+=1

    else:#判断是否是目录

        dir_count+=1

print("目录有%s个"%dir_count)

print("文件有%s个"%file_count)

 

#os.path.join(dir_name,file_name)#拼接路径。dir_name目录名,file_name文件名

dir_name="e:\\lost"

file_name="testing.txt"

os.path.join(dir_name,file_name)

>>> 'e:\\lost\\testing.txt'

 

#统计所有的文件有几个,目录有几个

import os

file_count=0

dir_count=0

for root,dirs,files in os.walk("d:\\lost"):#以递归的方式一层一层的去遍历,root表示路径

    for file in files:#files列表存储的当前目录下所有文件的名字

        file_count+=1

    print("当前目录是:",root)

    for dir in dirs:#dirs列表存储的当前目录下所有目录的名字

        dir_count+=1

print(file_count)

print(dir_count)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值