首页 > 编程语言 >python 创建、拷贝、移动、删除文件和文件夹

python 创建、拷贝、移动、删除文件和文件夹

时间:2023-05-26 11:34:25浏览次数:58  
标签:__ src target python 文件夹 拷贝 os folder

python 创建、拷贝、移动、删除文件和文件夹

1、创建文件夹

import os


def create_folder(folder: str):
    folder = os.path.abspath(folder)
    if not os.path.exists(folder):
        try:
            os.makedirs(folder)
            print(f"创建了文件夹:{folder}")
        except FileExistsError:
            print(f"文件夹已存在, 无需创建:{folder}")
        except Exception as e:
            msg = f"创建文件夹失败, folder:{folder}, e:{e}"
            print(msg)


def main():
    create_folder('A')


if __name__ == '__main__':
    main()

2、拷贝文件夹

import os.path
import shutil


def copy_folder(src: str, target: str):
    # 如果target是已存在的目录 则抛出FileExistsError异常
    # 如果target是已存在的文件 则抛出FileExistsError异常
    # 如果target不存在, 则拷贝
    src = os.path.abspath(src)
    target = os.path.abspath(target)
    try:
        shutil.copytree(src, target)
        print(f"拷贝文件夹成功, src:{src}, target:{target}")
    except FileExistsError as e:
        print(f"由于target已存在, 导致拷贝文件夹失败, src:{src}, target:{target}, e:{e}")
    except Exception as e:
        print(f"拷贝文件夹失败, src:{src}, target:{target}, e:{e}")


def main():
    copy_folder("A", 'C')


if __name__ == '__main__':
    main()

3、移动文件夹

import os.path
import shutil


def mv_folder(src: str, target: str):
    # 如果target是已存在的目录, 则移动src到该target目录下 target中出现同名的src文件夹
    # 如果target是已存在的文件 则抛出FileExistsError异常
    # 如果target不存在, 则重命名src为target 相当于移动
    src = os.path.abspath(src)
    target = os.path.abspath(target)
    try:
        shutil.move(src, target)
        print(f"移动文件夹成功, src:{src}, target:{target}")
    except FileExistsError as e:
        print(f"由于target已存在, 导致移动文件夹失败, src:{src}, target:{target}, e:{e}")
    except Exception as e:
        print(f"移动文件夹失败, src:{src}, target:{target}, e:{e}")


def main():
    mv_folder("A", 'B')


if __name__ == '__main__':
    main()

4、删除文件夹

import os.path
import shutil


def rm_folder(folder: str):
    folder = os.path.abspath(folder)
    if os.path.isdir(folder):
        try:
            shutil.rmtree(folder)
            print(f"删除文件夹成功, folder:{folder}")
        except FileNotFoundError as e:
            print(f"文件夹不存在, 无需删除, folder:{folder}, e:{e}")
        except Exception as e:
            print(f"删除文件夹失败, folder:{folder}, e:{e}")


def main():
    rm_folder("A")


if __name__ == '__main__':
    main()

5、拷贝文件

import os
import shutil


def copy_file(src: str, target: str):
    # 如果target是一个已存在的文件, 则覆盖文件内容
    # 如果target是一个已存在的文件夹, 则拷贝src到文件夹中, target文件夹中多一个src文件 如果target中存在同名src文件 则覆盖
    src = os.path.abspath(src)
    target = os.path.abspath(target)
    if os.path.isfile(src):
        try:
            shutil.copy2(src, target)
            print(f"拷贝文件成功, src:{src}, target:{target}")
        except Exception as e:
            print(f"拷贝文件失败, src:{src}, target:{target}, e:{e}")


def main():
    copy_file('a.txt', 'a.txt')


if __name__ == '__main__':
    main()

6、移动文件

import os.path
import shutil


def mv_file(src: str, target: str):
    # 如果target是一个已存在的文件, 则覆盖文件内容
    # 如果target是一个已存在的文件夹, 则移动src到文件夹中, target文件中多一个src文件 如果target中存在同名src文件 则覆盖
    src = os.path.abspath(src)
    target = os.path.abspath(target)
    if os.path.isfile(src):
        try:
            shutil.move(src, target)
            print(f"移动文件成功, src:{src}, target:{target}")
        except FileExistsError as e:
            print(f"由于target已存在, 导致移动文件失败, src:{src}, target:{target}, e:{e}")
        except Exception as e:
            print(f"移动文件失败, src:{src}, target:{target}, e:{e}")


def main():
    mv_file('a.txt', 'b.txt')


if __name__ == '__main__':
    main()

7、删除文件

import os.path


def rm_file(filename: str):
    filename = os.path.abspath(filename)
    if os.path.isfile(filename):
        try:
            os.remove(filename)
            print(f"删除文件成功, filename:{filename}")
        except FileNotFoundError:
            print(f"无需删除不存在的文件, filename:{filename}")
        except Exception as e:
            print(f"删除文件失败, filename:{filename}, e:{e}")


def main():
    rm_file("a.txt")


if __name__ == '__main__':
    main()

标签:__,src,target,python,文件夹,拷贝,os,folder
From: https://www.cnblogs.com/rainbow-tan/p/17434301.html

相关文章

  • 基于 python 的 nexus 私服 jar 包匹配查找程序
    程序通过计算jar包的sha1摘要,到maven仓库查询对应路径,适用于NexusRepositoryManagerOSS2.14.11-01,其他版本未做测试注意:jar包路径中不要出现空格#!/usr/bin/python3importhashlibimportosimportrequestsimportsysimporttempfilefromxml.etreeimport......
  • python · matplotlib | 如何绘制子图
    代码:importmatplotlib.pyplotaspltimportmatplotlibmatplotlib.rc("font",family='MicroSoftYaHei',weight="bold")fig,axs=plt.subplots(2,2,figsize=(15,12))colors=['blue','orange','green&#......
  • js对象遍历和拷贝
    letobj={name:'user1',age:12,gender:'man'}for(letattrinobj){console.log(attr,obj[attr])}constkeys=Object.keys(obj)constvalues=Object.values(obj)console.log(Object.keys(obj))console.log(Object.values(obj))   letobj......
  • 如何让python程序在windows下开机启动
    说明简述:通过将启动脚本写入注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run来实现开机自启问题:这种开机启动比较奇怪,运行路径是cmd.exe的路径,所以执行需要自启的程序时,读取其他相对路径的文件会有错误解决:执行启动前,切一下目录启动脚本importos......
  • Python工具箱系列(三十三)
    Timescaledb在物联网时代,出现了大量以时间为中心海量产生的传感器数据,称为时序数据。这类数据的特点是:数据记录总有一个时间戳。数据几乎总是追加,不更新也不删除。大量使用近期的数据。很少更新或者回填时间间隔的缺失数据。与时间间隔频率关系不大。但累积的数据量大,可能会有峰值......
  • python升级pip失败的最终解决办法
    玩点python卡在pip安装包上了,我用的是pycharm,在它的交互命令行里使用python-mpipinstall--upgradepip始终报错!Traceback(mostrecentcalllast):File"d:\soft\python3.7\lib\site-packages\pip\_vendor\urllib3\response.py",line331,in_error_catcheryield......
  • Python工具箱系列(三十三)
    Timescaledb在物联网时代,出现了大量以时间为中心海量产生的传感器数据,称为时序数据。这类数据的特点是:数据记录总有一个时间戳。数据几乎总是追加,不更新也不删除。大量使用近期的数据。很少更新或者回填时间间隔的缺失数据。与时间间隔频率关系不大。但累积的数据量......
  • Python图片与Base64相互转换
    importbase64#必须的pic=open("img.png","rb")#读取本地文件pic_base=base64.b64encode(pic.read())#本地文件转Base64数据,此时会出现编码带b'' 的情况pic_base=pic_base.decode('utf-8')#修正格式pic.close()#关闭importbase64pic=open("img.png&q......
  • Python 函数重载
    函数重载是指可以使用相同的函数名,但是函数参数类型和/或数量不同的多个函数。Python不支持函数重载,因为Python是一种动态类型语言,函数参数类型不需要在代码中声明,并且Python中的函数参数数量也可以是可变的。这意味着在同一个作用域内定义两个或两个以上具有相同名称但参数......
  • 疑难杂症(已解决) | 为什么出现python中tkinter创建界面需要一闪而过才进入主窗口?
    一、具体问题如图所示,我编写了一个主窗口的程序(如下所示,有兴趣的可以自己复制后运行),发现需要先进入第一个窗口再进入主界面,这不符合逻辑。 代码区域(完整代码):fromtkinterimport*classWinGUI(Tk):def__init__(self):super().__init__()self......