python实现目录和文件管理

目录

一:模块介绍:

二:目录创建

三:目录删除

四:目录复制

五:目录移动

六:文件创建

七:文件删除

八:文件读取


一:模块介绍:

Python的os和shutil模块提供了许多与操作系统交互的功能,包括文件和目录的创建、删除、移动等。

os模块提供了一系列与操作系统交互的函数,例如读取环境变量、改变当前工作目录、执行系统命令等。其中,os.path模块包含了一些用于处理文件路径的函数,例如os.path.exists()和os.path.isdir(),可以用来检查文件或目录是否存在。

shutil模块提供了一些高级的文件和目录操作,例如复制、删除、移动等。其中,shutil.rmtree()函数可以用来删除一个目录及其下的所有文件和子目录。

二:目录创建

import os  
import shutil

dir_path = "test/sub1"  # 替换为你的目录路径  

#这个首先检查目录是否存在,不存在创建目录
if os.path.isdir(dir_path):  
    print("目录存在")  
else:  
    os.makedirs('test/sub1')

三:目录删除

try:  
    shutil.rmtree(dir_path)  
    print("目录已删除")  
except OSError as e:  
    print("删除目录时出错: ", e.strerror)

四:目录复制

import shutil  
  
def copy_dir(src, dst):  
    try:  
        shutil.copytree(src, dst)  
        print(f"Directory copied from {src} to {dst}")  
    except Exception as e:  
        print(f"Error occurred: {e}")  
  
# 使用方法:copy_dir('源目录', '目标目录')
注意,shutil.copytree()函数会复制源目录及其所有子目录和文件到目标目录。如果目标目录已经存在同名文件或目录,那么会引发FileExistsError。如果你想在目标目录中覆盖同名文件或目录,你可以在调用copytree()时设置ignore或replace参数。

五:目录移动


import shutil  
  
def copy_dir(src, dst):  
    try:  
        shutil.copytree(src, dst)  
        print(f"Directory copied from {src} to {dst}")  
    except Exception as e:  
        print(f"Error occurred: {e}")  
  
# 使用方法:copy_dir('源目录', '目标目录')

shutil.move()函数会将源文件或目录移动到目标位置。如果目标位置已经存在同名文件或目录,那么会覆盖它。如果你想在移动时避免覆盖目标位置的同名文件或目录,你可以在调用move()时设置ignore_errors参数。

六:文件创建

file_path = "test/sub1/file.txt"  # 替换为你的文件路径  


 #这个首先检查文件是否存在,不存在创建目录写入数据
if os.path.exists(file_path):  
    print("文件存在")  
else:  
    with open(file_path, "w") as file:  
        file.write("Hello, World!")

七:文件删除

try:  
    os.remove(file_path)  
    print("文件已删除")  
except OSError as e:  
    print("删除文件时出错: ", e.strerror)

八:文件读取

with open(file_path, 'r') as f:  
        lines = f.readlines()  
        for line in lines:  
            print(line)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/333672.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024系统架构设计】 系统架构设计师第二版-嵌入式系统架构设计理论与实践

目录 一 嵌入式系统软件架构的原理 二 嵌入式系统软件架构的设计方法 三 案例分析 一 嵌入式系统软件架构的原理 🚀嵌入式系统的典型架构可以分为

React之useRef hook

介绍 useRef是react的自定义hook,它用来引用一个不需要渲染的值。这篇文章会介绍useRef的简单用法。 使用场景 1.实现节流 通过useRef实现节流功能,在限制时间内多次提交,已第一次提交为准。 useThrottle.jsx import {useEffect, useRef,…

PyQT5实现图像处理应用(含Windows7下完整打包方案)

目录 1、任务概述2、环境安装2.1 创建虚拟环境2.2 安装依赖库 3、程序开发3.1 框架搭建3.2 读取图像3.3 图像处理 4、打包部署5、小结 1、任务概述 本篇博文将通过PyQT5来实现一个简单的图像处理应用,并完成打包部署。 本文开发平台:Windows10 64位系统…

livp转换成jpg怎么转换?看完这篇文章你就知道了

livp转换成jpg怎么转换?livp文件是一种特定的图片格式,将其转换为jpg格式可以方便我们进行存储、共享和编辑。此外,jpg格式也是一种广泛支持的图片格式,几乎所有的设备和软件都能够识别和打开这种格式的图片。因此,将l…

【动态代理详解】

文章目录 1. 关于代理1.1 代理的概述1.1.1 什么是动态代理1.1.2 动态代理能做什么 1.2 什么是代理1.2.1 生活中的代理1.2.2 为什么要找中介? 1.3 开发中的代理模式(代理)1.3.1 使用代理模式的作用 1.4 实现代理的方式 2. 静态代理2.1 什么是静…

tryhackme--Command Injection(命令注入)

查看应用程序在哪个用户下运行。 任务1 简介(什么是命令注入?) 命令注入是滥用应用程序的行为,使用与设备上运行的应用程序相同的权限在操作系统上执行命令。例如,在以名为joe的用户身份运行的 Web 服务器上实现命令…

Chinese-llama-2部署踩坑记录

Chinese-llama-2部署踩坑记录 1. Chinese-LLaMA-Alpaca-2A. 部署a. inference_with_transformers_zhb. text generation webui_zhc. api_calls_zhd. llamacpp_zhe. privategpt_zhf. langchain_zh Tool Github 1. Chinese-LLaMA-Alpaca-2 A. 部署 a. inference_with_transform…

Ubuntu 18.04.5 LTS 解决安装包复杂依赖相关问题解决的主要法则和VIM的安装实录

前言:目标和环境 环境: Ubuntu 18.04.5 LTSVMware 目标: 安装vim,解决包依赖的冲突: 本文,通过一个很好的实例,诠释了,LINUX系统下,安装一个应用遇到的依赖库问题如何…

C++学习笔记(二十八):c++ 静态库及动态库的使用

静态库的使用 库的使用会很大程度减少我们的工作,本节对c中静态库和动态库的使用进行简单的介绍。静态链接库意味着这个库会被放到可执行文件中,在生成的exe中。动态链接库是在程序运行时链接的,可以在程序运行时调用加载库函数的方法来实现&…

最新揭秘!2024年六西格玛考试攻略—通关秘籍在此!

嗨咯,六西格玛领域的小伙伴们大家好,我知道你们的战场——考试备战,是多么艰苦而重要,在众多教程和攻略中寻求那一盏照亮迷雾的明灯。经过无数个品质改进、数量分析和流程优化的夜晚,我决定把我的整理分享给你们&#…

使用JGit拉取代码提示未授权not authorized

原因:2021年8月13日后不支持密码登录,需要使用token验证 调用时候需要先去git仓库创建个人令牌 需要在安全中心创建个人token,使用token名称作为账号,使用token作为密码。 另: Github克隆仓库的三种方式对比&#xff…

科技云报道:“存算一体”是大模型AI芯片的破局关键?

科技云报道原创。 在AI发展历史上,曾有两次“圣杯时刻”。 第一次发生在2012年10月,卷积神经网络(CNN)算法凭借比人眼识别更低的错误率,打开了计算机视觉的应用盛世。 第二次是2016年3月,DeepMind研发的…