python 文件目录常用操作

1、os 模块的常用参数 :

name : 用于获取操作系统的类型
linesep : 用于获取当前操作系统上的换行符

sep : 获取当前操作系统所路径分隔符使用的

# muchenfeng
import  os
print(os.name)
#  结果 : nt 为Windows系统  , posix 为 Linux 或者 Mac OS 系统
print("*"*10)

print(os.linesep)
# Windows 会输出 \r\n
print("*"*10)

print(os.sep)
# Windows 会输出 \\

2、os 常用的操作函数

getcwd() 返回当前的路径工作目录

listdir(path) 返回指定路径下的文件和目录

#muchenfeng
import os
print(os.getcwd())
import os
print(os.listdir("C:/"))

3、常用操作

os.path.isdir(path) 判断 path 是否为目录。

os.path.exists(path) 判断 path(文件或目录)是否存在,存在返回 True,否则返回 False。

os.path.abspath(path) 返回path的绝对路径

os.path.jion(path,*paths) 将一个或多个文件或目录进行拼接

os.path.getctime(path) 返回文件或目录在系统中创建的时间

os.path.isfile(path) 判断 path 是否为文件。

os.path.getsize(path) 返回 path 的大小,以字节为单位,若 path 是目录则返回 0。

os.system(command) 调用 shell 脚本。

os.chdir(path) 将当前工作目录更改为 path

4、目录的创建

 1、创建一级目录,即一次只能创建一级目录

os.mkdir("path",mode=0o777)
path 用于指定要创建的目录,可以用绝对路径,也可以使用相对路径
mode 指定数值模式,默认值为0777,该参数只在UNIX系统上有用,可省略

用该方法创建目录时只能创建指定路径中的最后一级目录,如果该目录的上一级不存在,则会抛出 FileNotfoundError 异常

#muchenfeng
import os
os.mkdir(r"C:\demo")
如果创建的目录已存在,则会抛出 FileExitsError 异常

解决方法 : 先判断指定的目录是否存在,只有不存在时才创建

#muchenfeng
import  os
path = "C:\\demo"
if  not os.path.exists(path):
    os.mkdir(path)
    print("创建成功")
else:
    print("创建目录已存在")
如果指定目录有多级,而且最后一级的上级目录中有不存在的,则会抛出 FileNotFoundError异常,并且目录创建不成功

解决方法:

#muchenfeng
#1、 编写递归函数调用os.mkdir() 函数实现
import os
def mkdir(path):                       # 定义递归创建目录的函数
    if not os.path.isdir(path):        # 判断是否为有效路径
        mkdir(os.path.split(path)[0])  # 递归调用
    else:                              # 如果目录存在,则直接返回
        return
    os.mkdir(path)                     # 创建目录
mkdir("D:/mr/test/demo")                      #  调用mkdir 函数
#2、采用多级目录创建                    

 2、使用创建多级目录

os.makedirs(name,mode = 0o777
name 为要建立的目录可以使用相对路径,也可以使用绝对路

mode 用于指定数值模式 ,默认值为0777 ,只在UNIX 上有效

#muchenfeng
import os
os.makedirs("C:\\demo\\test\\dir\\mr")

5、删除目录

#muchenfeng
os.rmdir("path")  #path 为要删除的目录
#muchenfeng
import os
os.rmdir("C:\\demo\\test\\dir\\mr") # 删除"C:\\demo\\test\\dir 目录下的 mr 目录
若指定目录不存在则会抛出异常,所以在删除前应该先判断是否存在
#muchenfeng
import  os
path = "C:\\demo\\test\\dir"
if os.path.exists(path): #判断目录是否存在
    os.rmdir(path)
    print("删除成功")
else:
    print("该目录不存在")
注意使用rmdir() 函数只能删除空目录,如果想删除非空,则需要使用Python的标准模块shutil的rmtree() 函数实现
#muchenfeng
import shutil
def remove(path):
    # check if folder exists
    if os.path.exists(path):  # 如果存在则删除
         shutil.rmtree(path)
    else:                     # 否则抛出指定的异常
         raise  ExceptionError("想要抛出的内容")
remove("path")

6、遍历目录

#muchenfeng
os.walk(top,topdown=True,onerror,followlinks=False)
top 为 要遍历内容的根目录,即所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)

topdown 遍历的顺序, 值为True 则自上而下遍历,为False 则自下而上的遍历,默认为True

onerror 指定错误处理方式,可以是一个错误处理函数,默认为忽略, 通常采用默认处理

followlinks 如果为 True,则会遍历目录下的快捷方式,如果为 False,则优先遍历 top 的子目录。默认为False

返回的内容: 返回的是一个三元组(root,dirs,files)。

root 所指的是当前正在遍历的这个文件夹的本身的地址,是一个字符串

dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录),是一个列表

files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录),是一个列表

#muchenfeng
import  os
tuples = os.walk("C:\\demo")
for tuple1 in tuples:
    print(tuple1,"\n")

7、遍历指定目录

#muchenfeng
import  os
path = "C:\\demo"
print("[,path,] 目录下包括的目录和文件")
for root,dirs,files, in os.walk(path,topdown=True):
    for name in dirs:
        print(os.path.join(root,name))
    for name in files:
        print(os.path.join(root,name))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕.晨风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值