mkdir 创建多级目录_Python基础学习笔记(十二)文件和目录

本节知识大纲:

2d0823cb63966e10ea6a79384a3efb4a.png

本节知识框架

一、文件目录的基本操作

说明:由于Windows和macOS文件目录系统的格式不同,在没有介绍到系统通配分隔符前,代码中的文件目录格式主要匹配macOS系统文件目录结构,下面是Python中常用的文件目录操作方法:

ca07663b275c41c156cc5eee33f017f1.png

1. 创建文件--mknod()方法和open()方法

(1)mknod方法

import os# 创建文件file_path = "./file_path.txt"os.mknod(file_path)

在window平台不支持这个操作,在Mac平台虽然支持这个语法但是系统出于安全考虑也会拒绝这个操作,需要超级管理员权限。

(2)open方法

在桌面创建一个py_test.txt的文件

open("/Users/yushengtan/Desktop/py_test.txt",mode = "w",encoding = "UTF-8")

创建文件,文件都还没有怎么使用参数w来写入呢?因为在没有文件的情况下,系统会默认自动创建一个空白文件,这样就达到了创建文件的功能。

2. 创建目录--mkdir()方法

比如我们要在当前目录下创建一个py_test的空目录

path = "./py_test"if not os.path.exists(path):  # 如果目录不存在    os.mkdir(path)else:    print("文件已存在")

案例

在桌面/Users/yushengtan/Desktop/文件夹创建一个Demo文件夹,在Demo中创建一个文本文件Test01.txt

import os# 创建目录path = "/Users/yushengtan/Desktop/Demo"path_txt = path + "text01.txt"if not os.path.exists(path):    os.mkdir(path)    print("目录"+path+"创建成功!")else:    print("目录"+path+"文件夹已经存在")# 创建文件if not os.path.exists(path_txt):    fd = open(path_txt,mode="w",encoding="UTF-8")    print("文件"+path_txt+"创建成功!")    fd.close()  # 资源释放else:    print("文件创建失败")

3. 删除目录和文件--rmdir()方法和remove()方法

案例

删除test01.txt和Demo

import ospath = "/Users/yushengtan/Desktop/Demo"path_txt = path + "text01.txt"# 删除文件# 如果要删除文件夹必须要保证文件夹是空的if os.path.exists(path_txt):    os.remove(path_txt)    print("文件"+path_txt+"删除成功!")else:    print("要删除的文件"+path_txt+"不存在")# 删除目录if os.path.exists(path):    os.rmdir(path_txt)    print("文件"+path+"删除成功!")else:    print("要删除的文件"+path+"不存在")

4. 文件目录程序完善

(1)跨平台目录分隔符

在windows系统里面支持的路径分隔符是反斜杠,Linux和macOS系统路径分隔符是斜杠/;os.path.sep或者os.sep提供了自动匹配系统的路径分隔符。所以上面的代码中的文件路径在macOS系统下可以执行,在Windows就不能执行了,那么如何让我们的程序可以跨平台执行呢?

解决办法:代码中路径里的斜杠或者反斜杠通过os.path.sep来代替,这样在不同的操作系统下,路径会自动适配。

(2)异常处理 涉及到文件和目录的读写和删除一定要用上异常处理,因为会有很多意外的情况发生,捕获异常来防止程序崩溃

二、创建多个文件

案例

在当前系统的桌面目录下创建一个文件夹Demo,在文件夹中创建10个文本文件(命名格式:Test+3为随机数字)

难点

创建的文件名有可能重复

思路01:每次创建文件的的时候判断是否已经存在,如果存在则重新创建

import osimport random# 方法01:每次创建文件的的时候判断是否已经存在,如果存在则重新创建def get_file_name():    return "Test"+"%03d"%(random.randint(0,999))+".txt"path = os.path.sep+"Users"+os.path.sep+"yushengtan"+os.path.sep+"Desktop"+os.path.sep+"Demo"+os.path.sep# 创建目录if not os.path.exists(path):    try:        os.mkdir(path)        print("目录创建成功!")    except:        print("目录创建异常!")else:    print("目录已经存在")# 通过循环创建文件total_number = 10current_number = 0while current_number 

思路02:先构建好10个不同的名字,然后依次创建

def get_file_name(num:int):    file_name_list = []    current = 0    while current 

三、OS模块常见的操作方法

1. os模块常用操作函数

b6b0f85707584fda27fde3d615b045e9.png

(1)getcwd( )

获取当前的工作路径

print(os.getcwd())

(2)chdir( )

修改当前工作路径

path = os.path.sep+"Users"+os.path.sep+"yushengtan"+os.path.sep+"Desktop"+os.path.sep+"Demo"+os.path.sepos.chdir(path)  # 调整当前的工作路径file = "abc.txt"if not os.path.exists(file):    fd = open(file,mode="w",encoding="UTF-8")    fd.close()

(3)listdir( )

列出一个目录下的所有的文件夹和子文件夹,返回list集合

list01 = os.listdir(os.path.sep+"Users"+os.path.sep+"yushengtan"+os.path.sep+"Desktop"+os.path.sep)for i in list01:    file = os.path.sep+"Users"+os.path.sep+"yushengtan"+os.path.sep+"Desktop"+os.path.se
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值