Python中操作文件夹和文件路径的方法

 更新时间:2025年12月08日 14:29:42   作者:光羽隹衡  
文章主要介绍了Python标准库os中操作文件和文件夹的相关函数,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

操作文件路径

Python标准库提供了os库来管理操作系统相关功能,无须下载、安装,os库包含丰富的操作文件的方法,以通过import os导入库之后使用dir(os)查询获取

获取当前路径

os库中的getcwd()函数可用于获取当前代码所在文件夹的绝对路径(不包含代码文件名)

示例代码:

import os
print(os.getcwd())

创建文件夹

os库中有两种用于创建文件夹的函数,分别为mkdir()函数和makedirs()函数。

mkdir()函数

在os库中使用mkdir(路径)函数可以实现在路径中创建一个新的文件夹。

示例代码:

import os
os.mkdir(r"E:\书代码\第9章\数据1")

注意:必须保证“E:\书代码\第9章”这个路径是正确的,否则会无法创建新文件夹。

makedirs()函数

在os库中makedirs(路径)函数是根据参数来递归创建文件夹,递归表示根据路径创建包含的文件夹。

示例代码:

import os
os.makedirs(r"E:\书代码1\数据1\内容b")

第2行代码使用makedirs()函数创建了文件夹,由于笔者E盘下并没有文件夹“书代码1”,因此代码执行之后会在E盘中连续创建3个文件夹,其中“书代码1”文件夹包含“数据1”文件夹,“数据1”文件夹包含“内容b”文件夹。

因此mkdir()函数和makedirs()函数的区别在于是否可以递归创建文件夹。

示例代码:

import os
for i in range(1,201):
    file_name = '文件夹'+str(i)
    file_path = os.getcwd()+'\\数据1\\' + file_name
    os.mkdir(file_path)

拼接路径

使用os.path.join()方法可以实现将参数拼接为目录路径,从而方便且快速地获取文件地址。

示例代码:

import os
dir_new = os.path.join(os.getcwd(), '数据2','内容c')
print(dir_new,type(dir_new))

代码执行结果:E:\书代码\第9章\数据2\内容c <class 'str'>

跳转路径

如果需要在程序中实现从当前代码所在文件夹路径跳转到其他路径,可以使用os库中的chdir(路径)函数,但要注意路径必须是已经存在的,否则运行代码后会出现报错。

示例代码:

import os
print(os.getcwd())
os.chdir('E:\书代码\第9章\数据2')
print(os.getcwd())

代码执行结果:
E:\书代码\第9章
E:\书代码\第9章\数据1

判断相对路径和绝对路径

使用os.path.isabs(path)方法可以判断当前路径是相对路径还是绝对路径。

示例代码:

import os
a=os.path.isabs('数据2\内容c')
b=os.path.isabs('E:\代码例')
print(a,b)

如果是绝对路径就返回True,如果是相对路径就返回False

获取文件路径和文件名

os库的path模块下的basename(path)方法可用于获取路径中的文件名,dirname(路径)方法可用于获取路径中的文件夹路径,split(路径)方法可用于将获取的文件夹路径和文件名以元组的形式返回。

示例代码:

import os
path = r'E:\代码例\数据2\内容c\Python程序代码1.txt'
file_name = os.path.basename(path)
dir_name = os.path.dirname(path)
file_dir_name = os.path.split(path)
print(file_name,'\n',dir_name,'\n',file_dir_name)

代码执行结果:

Python程序代码1.txt
E:\代码例\数据2\内容c
('E:\\代码例\\数据2\\内容c', 'Python程序代码1.txt')

操作文件和文件夹

本节主要介绍使用os库中的方法实现查询文件大小、删除文件或文件夹、重命名文件或文件夹等操作。

查询文件大小

使用os库的path模块下的getsize(path)方法可以获取路径中的文件所占用内存的大小,单位为字节。

示例代码:

import os
path = r'E:\代码例\数据2\内容c\Python程序代码1.txt'
print(os.path.getsize(path))

删除文件和文件夹

os库中的remove(path)方法可用于删除path中的文件。

示例代码:

import os
os.remove(r'E:\书代码1\数据1\内容b\dwed.txt')

注意:os库中的rmdir(path)方法可用于删除path中的最后一层文件夹,不能递归删除整个path的全部文件夹。

示例代码:

import os
os.rmdir('数据3\内层1')

执行该代码后将会删除“内层1”文件夹。

重命名文件或文件夹

使用os库中的rename()和renames()函数即可实现对文件或文件夹进行重命名。其使用形式如下:

示例代码:

os.rename(src, dst)
os.renames(src, dst)

功能:rename()函数修改指定文件夹或文件的名称;

           renames()函数递归修改文件夹或文件的名称。

参数:src:表示要修改的文件夹路径或文件路径;

           dst:表示修改后的文件夹路径或文件路径。

示例代码:(将所示的所有文件夹名序号增大200)

import os
for i in range(1,201):
    old = 'E:/书代码/第9章/数据1/文件夹'+str(i)
    new = 'E:/书代码/第9章/数据1/文件夹'+str(i+200)
    os.rename(old,new) #对文件或文件夹进行重命名
os.renames('E:/书代码/第9章/数据1/文件夹201','E:/书代码/第9章/数据2/文件夹201')

第2~5行代码使用for循环200次,分别获取要修改的路径old和修改后的路径new,并使用rename()函数修改文件夹名称。

复制文件

os库中的os.link()函数可用于创建硬链接以实现复制文件。其使用形式如下:

os.link(src, dst)

参数:src:表示要复制的文件夹路径或文件路径;

           dst:表示复制后的文件夹路径或文件路径。

示例代码:

import os
os.link('E:/书代码/报告合集.pdf', 'E:/书代码/数据1/报告合集.pdf')

执行代码后即可将“报告合集.pdf”文件复制到“E:/书代码/数据1”路径中。

获取文件夹中的全部文件名

使用os库中的listdir(路径)方法即可获取文件夹中的全部文件名(包含文件和文件夹的名称)

示例代码:

import os
print('相对路径中有:', os.listdir('.'))

代码执行结果:
相对路径中有: ['数据1', '数据2', '第9章第1个程序.py', '第9章第3个程序.py', '第9章第5个程序.py']

在办公领域中,获取文件夹中的全部文件是较为常见的操作,当需要对一系列的文件进行操作时,可以先将这一系列的文件存放在同一个文件夹中,然后通过os.list()方法遍历并获取文件,再对文件进行操作。

示例代码(统计当前文件夹中所有文件占用空间的大小):

import os
file_total_size = 0
for file_name in os.listdir('.'):
    file_dir = os.path.join(os.getcwd(), file_name)
    file_total_size += os.path.getsize(file_dir)
print(file_total_size/1024)

判断文件和文件夹

os库中提供了以下3种用于判断path是文件还是文件夹的方法:

1. os.path.exists(path):判断path所指的文件或文件夹是否存在,如果存在则返回True,否则返回False。

2. os.path.isfile(path):判断path是否为文件,如果是文件则返回True,否则返回False。

3. os.path.isdir(path):判断path是否为文件夹,如果是文件夹则返回True,否则返回False。
示例代码:

import os
path = r'E:\书代码\数据2\内容c\Python程序代码1.txt'
print(os.path.exists(path), end='\t')
print(os.path.isfile(path), end='\t')
print(os.path.isdir(path), end='\t')

代码执行结果:True    True    False

注意:当文件夹存在但文件夹中的文件不存在时,执行3种方法后都会返回False

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

相关文章

  • Python字符串中如何去除数字之间的逗号

    Python字符串中如何去除数字之间的逗号

    这篇文章主要介绍了Python字符串中如何去除数字之间的逗号,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 基于Python的接口自动化unittest测试框架和ddt数据驱动详解

    基于Python的接口自动化unittest测试框架和ddt数据驱动详解

    这篇文章主要介绍了基于Python的接口自动化unittest测试框架和ddt数据驱动详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Pytorch中torch.utils.checkpoint()及用法详解

    Pytorch中torch.utils.checkpoint()及用法详解

    在PyTorch中,torch.utils.checkpoint 模块提供了实现梯度检查点(也称为checkpointing)的功能,这篇文章给大家介绍了Pytorch中torch.utils.checkpoint()的相关知识,感兴趣的朋友一起看看吧
    2024-03-03
  • Python中使用matplotlib库绘制各种图

    Python中使用matplotlib库绘制各种图

    这篇文章主要介绍了Python中使用matplotlib库绘制各种图方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 压缩包密码破解示例分享(类似典破解)

    压缩包密码破解示例分享(类似典破解)

    有一个压缩包密码忘了,写了一个小脚本实现一个解密的功能,输入自己常用密码中的单词后,脚本将这些密码组合尝试解压压缩包
    2014-01-01
  • Django组件cookie与session的具体使用

    Django组件cookie与session的具体使用

    这篇文章主要介绍了Django组件cookie与session的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python内置函数—vars的具体使用方法

    Python内置函数—vars的具体使用方法

    本篇文章主要介绍了Python内置函数—vars的具体使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Python实现批量修改文件时间属性

    Python实现批量修改文件时间属性

    我们有时候需要修改文件的“修改时间” 、 “访问时间”,“创建时间” ,此时如果使用Python批量实现应该会方便很多,下面小编就来为大家介绍一下具体实现方法吧
    2023-11-11
  • keras小技巧——获取某一个网络层的输出方式

    keras小技巧——获取某一个网络层的输出方式

    这篇文章主要介绍了keras小技巧——获取某一个网络层的输出方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)

    selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)

    这篇文章主要介绍了selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论