Python实现文件及文件夹操作大全

目录
  • 一、文件操作
    • 1.1 文件常规操作
    • 1.2 文件读写
    • 1.3 文件相关属性访问
  • 二、文件夹操作
    • 2.1 文件夹常规操作
    • 2.2 遍历文件夹
    • 2.3 文件夹相关属性访问
  • 三、其他相关操作
    • 3.1 工作目录操作
    • 3.2 文件&文件夹其他操作

在日常工作或生活中,总避免不了需要操作文件或文件夹,比如希望找出电脑中所有临时文件并清除,或者找到指定文件夹内所有图片文件并进行重新命名等等,如果能通过Python脚本的方式解决,会大大提升相关操作效率,本文即总结使用Python进行常见操作相关知识点,方便用到的人随时查阅,不用再每次使用都要花费时间检索或查阅文档。本文主要使用os、shutil、pathlib三个包。

一、文件操作

1.1 文件常规操作

操作 代码 说明/示例
新建文件 os.mknod(dir_str) 传入需创建文件的路径,但是需要修改权限才行
os.system(' touch test.txt') 使用命令行创建,简单方便
移动文件 shutil.move(src_str,dst_str) 传入源路径和目标路径,可移动文件及文件夹,移动文件夹时是递归移动,返回相较于工作目录的相对最终路径
复制文件 shutil.copyfile(src_str,dst_str) 传入源文件和需复制到路径,均需是文件,返回相较于工作目录的相对最终路径
shutil.copy(src_str,dst_str) 传入源文件和需复制到路径,dst如果是文件则复制+重命名,如果是目录,则直接复制,但均不复制文件元信息
shutil.copy2(src_str,dst_str) 相较于copy,会将文件元信息也复制,包括创建、修改时间等
重命名 os.rename(old_str,new_str) 对文件或文件夹重命名
删除文件 os.remove(file_str) 删除指定文件,可以传入相较于工作目录的相对路径

1.2 文件读写

文件读写建议使用Python的标准file操作,具体本文不作展开

with open(filename_str,mode_str) as f:
    f.readline()
    f.write(content)

1.3 文件相关属性访问

操作 代码 说明/示例
获取文件或文件夹属性 os.stat(dir_str)
获取文件或文件夹相关属性

可返回文件的模式、所属用户ID、大小、上次访问时间、最后修改时间、创建时间等信息

具体见: Python os.stat() 方法 | 菜鸟教程

二、文件夹操作

2.1 文件夹常规操作

操作 代码 说明/示例
新建文件夹 os.mkdir(dir_str) 创建单个文件夹,如果文件夹已存在会报错
os.mkdirs(dir_str) 递归创建文件夹,即可一次性创建多层文件夹

from pathlib import Path

p=Path(dir_str)

p.mkdir(exist_ok=True)

使用pathlib,可以创建单个或递归创建文件夹,且如果存在也可忽略报错
移动文件夹 shutil.move(src_str,dst_str) 可移动文件或文件夹
复制文件夹 shutil.copytree(src_str,dst_str) 递归的将指定文件夹复制到目标文件夹内,一般用作备份文件夹
删除文件夹 os.rmdir(dir_str) 删除指定文件夹,只能删除单层文件夹,且不为空
os.removedirs(dir_str) 递归删除指定文件夹,但只会删除非空文件夹

from pathlib import Path

p=Path(dir_str)

p.rmdir()

与os.rmdir作用相同
shutil.rmtree(dir_str) 递归删除指定文件夹及子文件夹,不为空也行,相对比较危险

2.2 遍历文件夹

操作 代码 说明/示例
单层遍历 os.listdir(dir_str) 返回列表,列表内为该文件夹内的所有文件及文件夹名称
os.scandir(dir_str) 返回对指定文件单层遍历的迭代器,可遍历该迭代器,可获取文件或文件夹名称、属性信息
递归遍历 os.walk(dir_str) 递归遍历指定文件夹,包括子文件夹
import os
dir_str='~/downloads/'

#使用listdir
dir_list=listdir(dir_str)
for file in dir_list:
    if os.path.isfile(os.path.join(os.getcwd(),file):
        print('是一个文件')

#使用scandir
for file in os.scandir(dir_str):
    print(file.name) #打印文件名称
    print(file.stat) #打印文件属性
#使用os.walk()递归遍历
#walk函数会返回当前遍历文件夹根目录,该目录下所有文件夹组成的列表以及该目录下所有文件组成的列表
dir_str='~/downloads/'
dir_iter=os.walk(dir_str)

for root_dir,dirs,files in dir_iter:
    for file in files:
        print(file)

2.3 文件夹相关属性访问

见1.3

三、其他相关操作

3.1 工作目录操作

操作 代码 说明/示例
查询当前工作目录 os.getcwd() 返回当前的工作目录,即当前执行命令时所在工作目录
修改当前工作目录 os.chdir(dir_str) 修改当前工作目录,只是临时修改

3.2 文件&文件夹其他操作

操作 代码 说明/示例
压缩文件/文件夹 shutil.make_archive(file_str,format,src_dir) 将src_dir按照format指定的格式压缩为file_str文件
解压压缩文件 shutil.unpack_archive(filename, extract_dir=None, format=None) 将filename解压到extract_dir
变更权限
os.chmod(dir_str,mode_int)

os.chmod('aa.txt',777)

将dir_str的权限模式修改为mode_int
import shutil
shutil.make_archive('aaa','zip','/users/aaa/downloads/常用脚本')
#以上会将常用脚本文件夹内所有内容压缩为aaa.zip,并存到当前工作目录下
#如果同时希望指定压缩文件的存储位置,则
shutil.make_archive('/users/aaa/test/aaa.zip','zip','/users/aaa/downloads/常用脚本')
import shutil
shutil.unpack_archive('aaa.zip','/users/yanweichao/downloads/bbb')
#或想当前文件内的aaa.zip文件解压到bbb文件夹内,如果bbb文件夹不存在,会自动创建

到此这篇关于Python实现文件及文件夹操作大全的文章就介绍到这了,更多相关Python 文件及文件夹操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python文件夹批处理操作代码实例

    如图所示,有一个test文件夹,里面有3个子文件夹,每个子文件夹中有若干图片文件 #场景1 读取一个文件夹中所有文件,存入到一个list表中 #coding:utf-8 from __future__ import absolute_import from __future__ import division from __future__ import print_function import numpy as np import os import sys import math impo

  • Python文件夹与文件的相关操作(推荐)

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是: import os 一.取得当前目录 s = os.getcwd() # s 中保存的是当前目录(即文件夹) 比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置. 举个简单例子,我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A

  • Python文件夹与文件的操作实现代码

    有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是: import os 一.取得当前目录 s = os.getcwd() # s 中保存的是当前目录(即文件夹) 比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置. 举个简单例子,我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹.且文件夹的名字根据时间自动生成. import os import time folder =

  • 如何利用python实现windows的批处理及文件夹操作

    目录 1.批量处理 2. 文件夹操作 2.1 读取文件中的文件名 2.2 创建文件夹 2.3.获取某指定目录下的所有文件的列表 2.4.将一个路径名分解为目录名和文件名两部分 总结 1.批量处理 所谓的批处理就是批量处理cmd里面的命令. python要想实现批处理功能需要导入os库,然后利用批处理的命令为os.system(cmd_line)其中cmd_line是输入cmd里面的命令. import os # 批量处理的exe文件 EXE_PATH="C:\\Users\\AAA\\Deskt

  • python之文件的读写和文件目录以及文件夹的操作实现代码

    为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用的文件对象占用内存.举个例子,对文本文件读取: file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) Python读写文件实际操作的五大步骤 一.打开文件 Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你

  • python实现操作文件(文件夹)

    本文实例为大家分享了pyhton操作文件的具体代码,供大家参考,具体内容如下 copy_file 功能:将某个文件夹下的所有文件(文件夹)复制到另一个文件夹 #! python 3 # -*- coding:utf-8 -*- # Autor: GrayMac import shutil import os basefileclass = 'basefile' #sourcefile:源文件路径 fileclass:源文件夹 destinationfile:目标文件夹路径 def copy_fi

  • Python实现文件及文件夹操作大全

    目录 一.文件操作 1.1 文件常规操作 1.2 文件读写 1.3 文件相关属性访问 二.文件夹操作 2.1 文件夹常规操作 2.2 遍历文件夹 2.3 文件夹相关属性访问 三.其他相关操作 3.1 工作目录操作 3.2 文件&文件夹其他操作 在日常工作或生活中,总避免不了需要操作文件或文件夹,比如希望找出电脑中所有临时文件并清除,或者找到指定文件夹内所有图片文件并进行重新命名等等,如果能通过Python脚本的方式解决,会大大提升相关操作效率,本文即总结使用Python进行常见操作相关知识点,方

  • python修改linux中文件(文件夹)的权限属性操作

    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限:对目录来说,具有新建,删除,修改,移动目录内文件的权限. x(eXecute,执行):对文件而言,具有执行文件的权限:对目录了来说该用户具有进

  • Python简单删除目录下文件以及文件夹的方法

    本文实例讲述了Python简单删除目录下文件以及文件夹的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python import os import shutil filelist=[] rootdir="/home/zoer/aaa" filelist=os.listdir(rootdir) for f in filelist: filepath = os.path.join( rootdir, f ) if os.path.isfile(filepath):

  • Python判断文件或文件夹是否存在的三种方法

    常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try语句.pathlib模块. 1.使用os模块 os模块中的os.path.exists()方法用于检验文件是否存在. 判断文件是否存在 import os os.path.exists(test_file.txt) #True os.path.exists(no_exist_file.txt) #Fa

  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    使用Python过程中,经常需要对文件和目录进行操作.所有file类/os/os.path/shutil模块时每个Python程序员必须学习的. 下面通过两段code来对其进行学习. 1. 学习 file对象 2. 学习os/os.path/shutil模块 1.file对象学习: 项目中需要从文件中读取配置参数,python可以从Json,xml等文件中读取数据,然后转换成Python的内容数据结构. 下面以Json文件为例,实现从Json文件中获取配置参数. code运行环境:python2

  • Python文件与文件夹常见基本操作总结

    本文实例讲述了Python文件与文件夹常见基本操作.分享给大家供大家参考,具体如下: 1.判断文件(夹)是否存在. os.path.exists(pathname) 2.判断路径名是否为文件. os.path.isfile(pathname) 3.判断路径名是否为目录. os.path.isdir(pathname) 4.创建文件. os.mknod(filename) #windows下不可用 open(filename, "w") #记得要关闭 5.复制文件. shutil.cop

  • python中os操作文件及文件路径实例汇总

    本文实例讲述了python中os操作文件及文件路径的方法.分享给大家供大家参考.具体分析如下: python获取文件上一级目录:取文件所在目录的上一级目录 复制代码 代码如下: os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir)) os.path.pardir是父目录,os.path.abspath是绝对路径 举例具体看一下输出: 复制代码 代码如下: print os.path.dirname(

  • Python 实现删除某路径下文件及文件夹的实例讲解

    Python 实现删除某路径下文件及文件夹的脚本 #!/usr/bin/env python import os import shutil delList = [] delDir = "/home/test" delList = os.listdir(delDir ) for f in delList: filePath = os.path.join( delDir, f ) if os.path.isfile(filePath): os.remove(filePath) print

随机推荐