博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
这可能是最详细的Python文件操作
阅读量:7276 次
发布时间:2019-06-29

本文共 3314 字,大约阅读时间需要 11 分钟。

删除

# ==================删除==================# 只能删除文件,若为目录则报错# 若文件正在使用,Windows下会直接报错,Linux下会在目录表中删除记录,但文件还在# 与os.unlink()一样的作用os.remove(r"C:\Users\Microsoft\Desktop\111.exe")# 删除目录,目录必须为空,否则报错OSErroros.rmdir(r"C:\Users\Microsoft\Desktop\aaa")# 递归删除空目录os.removedirs(r"C:\Users\Microsoft\Desktop\1\2\3")# 删除整个目录(不管此目录下有多少目录和文件)shutil.rmtree(r"C:\Users\Microsoft\Desktop\aaa")# ======================================复制代码

新建

# ==================新建==================# 新建文件夹,若倒数第二层文件夹不存在则会报错os.mkdir(r"/home/python")# 递归新建目录,若文件夹存在则报错os.makedirs(r"C:\Users\Microsoft\Desktop\aaa\666\777")# ======================================复制代码

复制

# ==================复制==================# 复制文件,不能复制文件夹shutil.copyfile(r"D:\python\py1\1.txt", r"D:\python\py2\1.txt")# 复制文件,与copyfile不同的是,第二个可以参数可以使用文件夹路径shutil.copy(r"D:\python\py1\1.txt", r"D:\python\py2")# shutil.copy只复制文件内容,copy2还复制了创建时间、修改时间等信息,shutil.copy2(r"D:\python\py1\1.txt", r"D:\python\py2")# 复制整个文件夹,若目标目录已存在,则会报错shutil.copytree(r"D:\python\py1", r"D:\python\py3\py1")# ======================================复制代码

移动

# ==================移动====================# 移动文件或文件夹,可使用目录树形式shutil.move(r"D:\python\py1", r"D:\python\py3\py2")# ========================================复制代码

重命名

# ==================重命名==================# 重命名文件或目录,但不能这样:rename("/aaa/a.txt","/bbb/a.txt"),也不能同时重命名目录和文件os.rename(r"C:\Users\Microsoft\Desktop\aaa\5",r"C:\Users\Microsoft\Desktop\bbb\6")# 重命名目录或文件# 若同时重命名路径和文件,则会新建路径并将文件重命名后移动到新目录# 如:os.renames("/aaa/b.txt","/bbb/c.txt"),则会在aaa同级目录新建bbb目录,并将b.txt重命名为c.txt后移动到bbb目录os.renames(r"C:\Users\Microsoft\Desktop\aaa\6",r"C:\Users\Microsoft\Desktop\aaa\123")# =======================================复制代码

路径相关

# ==================路径相关==================# 获取文件的完整路径os.path.abspath(r"script.py")# 获取完整路径中的文件名,以下返回script.py,等价于os.path.split(path)[1]os.path.basename(r"/home/python/script.py")# 获取文件的绝对路径,参数也必须是全路径,另:即使文件不存在也会正常返回,等价于os.path.split(path)[0]os.path.dirname(r"/home/python/script.py")# 获取文件的文件名和扩展名,以下返回:('script', '.py')os.path.splitext(r"script.py")# 获取脚本运行目录os.getcwd()# 获取目录下文件列表,参数为空则为脚本运行目录,返回格式:['1.py','2.py']os.listdir(r"/home/python")# 判断文件或路径是否存在os.path.exists(r"/home/python")# 判断目标是文件还是路径os.path.isdir(r"/home/python")os.path.isfile(r"/home/python")# =========================================复制代码

遍历目录

两种方式:

  1. os.walk()
  2. os.listdir() 递归

os.walk

os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])

参数1:要遍历的目录

参数2:默认True为广度遍历,False为深度遍历

参数3:可空,callable 对象,当 walk 异常时,会调用

参数4:可空,如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)

import os list_dirs = os.walk(rootDir) for root, dirs, files in list_dirs:    # root 所指的是当前正在遍历的这个文件夹的本身的地址    # dirs 是一个list,内容是该文件夹中所有的目录的名字(不包括子目录)    # files 同样是list , 内容是该文件夹中所有的文件(不包括子目录)    print("======")    for d in dirs:        # 只输出遍历文件夹名        print(os.path.join(root, d))    for f in files:        # 只输出遍历的文件名        print(os.path.join(root, f))复制代码

os.listdir递归

os.listdir(path)

参数1:目录

返回path目录下的文件夹名和文件名,并按字母顺序排列

def Recursion(rootDir):    for lists in os.listdir(rootDir):        path = os.path.join(rootDir, lists)        # 输出文件名或文件夹名        print(path)        # 判断是否为文件夹,如果是,则递归遍历        # 如果不是则为文件,可执行具体逻辑        if os.path.isdir(path):            Recursion(path)        else:            pass复制代码

我的博客:

公众号:花墨世界

转载于:https://juejin.im/post/5c2f1d6ce51d455023415a6a

你可能感兴趣的文章
HTML5 placeholder(空白提示) 属性
查看>>
库存管理系统
查看>>
Linux下安装JDK
查看>>
WebGL高级编程:开发Web3D图形 PDF(中文版带书签)
查看>>
asynchronous.js
查看>>
c#基础--转义符
查看>>
jquery视频教程网址,记录
查看>>
Rearrange a string so that all same characters become d distance away
查看>>
Python之路(第二十六篇) 面向对象进阶:内置方法
查看>>
C实现简单文本加解密
查看>>
追梦路上
查看>>
Centos7 gvim sougou搜狗输入法无法切换
查看>>
邻接表链式结构的实现和顺序结构的实现
查看>>
meta标签详解:源http://blog.csdn.net/kongjiea/article/details/17092413
查看>>
内存泄露&内存溢出
查看>>
屏蔽webvie嵌套页广告
查看>>
Dynamics CRM 报表导出EXCEL 列合并问题的解决方法
查看>>
MTK6573的LDO控制
查看>>
【工具】-RAP接口管理工具
查看>>
***单文件搞定微信支付和支付宝支付
查看>>