Python目录和文件处理总结详解

竹里
竹里
发布时间:2026-10-11| 2人浏览过
原创

本文详细总结了Python中目录和文件处理的常用方法,包括判断目录和文件是否存在、创建目录、重命名、获取指定目录下的目录和文件列表、获取文件信息、目录和文件的移动、拷贝以及删除等操作。通过具体的代码示例,帮助读者更好地理解和应用这些功能。

Python目录和文件处理总结详解

在Python中,处理目录和文件是非常常见的操作。本文将详细介绍如何使用Python进行目录和文件的处理,包括判断目录和文件是否存在、创建目录、重命名、获取指定目录下的目录和文件列表、获取文件信息、目录和文件的移动、拷贝以及删除等操作。

判断目录和文件是否存在

在进行目录和文件操作之前,首先需要判断目录或文件是否存在。这可以通过Python的os模块来实现。

import os

# 获取当前目录路径: E:\Work\Projects\python
print(os.getcwd()) 

# 判断当前目录是否存在,不存在则创建目录dir1
if not os.path.isdir('dir1'):
  os.mkdir('dir1') 

# 判断指定目录是否存在,不存在则创建目录dir22
if not os.path.isdir('E:\Work\Projects\python\dir22'):
  os.mkdir('E:\Work\Projects\python\dir22') 

# 判断当前目录的指定文件是否存在
print(os.path.isfile('file1.txt'))

重命名目录或文件

如果需要重命名目录或文件,可以使用os.rename()函数。

# 重命名目录dir22为dir2(rename也可用于文件)
os.rename('dir22', 'dir2')

获取指定目录下的目录和文件列表

要获取指定目录下的目录和文件列表,可以使用os.listdir()函数。

import os
path = os.getcwd()
for filename in os.listdir(path):
  print(os.path.join(path,filename))
'''运行结果:
E:\Work\Projects\python\1.txt
E:\Work\Projects\python\2.txt
E:\Work\Projects\python\dir1
E:\Work\Projects\python\dir2
E:\Work\Projects\python\test1.py
'''

递归获取指定目录下的目录和文件列表

如果需要递归获取指定目录下的所有目录和文件,可以使用os.walk()函数。

import os

path = os.getcwd()
#walk产生3元组:目录路径,目录名称,文件名
for dirpath,dirnames,filenames in os.walk(path):
  print("dirpath:{};dirnames:{};filenames:{}".format(dirpath,dirnames,filenames))

'''运行结果:
dirpath:E:\Work\Projects\python;dirnames:['dir1', 'dir2'];filenames:['1.txt', '2.txt', 'test1.py']
dirpath:E:\Work\Projects\python\dir1;dirnames:[];filenames:['dir1_1.txt', 'dir1_2.txt']
dirpath:E:\Work\Projects\python\dir2;dirnames:[];filenames:[]
'''

for dirpath,dirnames,filenames in os.walk(path):
  # 输出所有文件
  for filename in filenames:
    print(os.path.join(dirpath, filename))
  # 输出所有目录
  for dirname in dirnames:
    print(os.path.join(dirpath, dirname))

'''运行结果:
E:\Work\Projects\python\1.txt
E:\Work\Projects\python\2.txt
E:\Work\Projects\python\test1.py
E:\Work\Projects\python\dir1
E:\Work\Projects\python\dir2
E:\Work\Projects\python\dir1\dir1_1.txt
E:\Work\Projects\python\dir1\dir1_2.txt
'''

获取文件信息

要获取文件的信息,如文件大小、创建时间、最后修改时间和最后访问时间,可以使用os.path模块中的相关函数。

import os
import time

filepath = r'E:\Work\Projects\python\1.txt'

# 分割路径,返回一个元组(目录,文件名),结果:('E:\\Work\\Projects\\python', '1.txt')
print(os.path.split(filepath))

# 返回目录部分,结果:E:\Work\Projects\python
print(os.path.dirname(filepath))

# 返回文件名,结果:1.txt
print(os.path.basename(filepath))

# 返回文件大小(单位为字节),结果:1296 
print(os.path.getsize(filepath))

# 返回目录或文件的创建时间、最后修改时间、最后访问时间(单位为新纪元1970年1月1日到访问时的秒数)
ctime = os.path.getctime(filepath)
mtime = os.path.getmtime(filepath)
atime = os.path.getatime(filepath)
# 结果例子:1566436201.5443518 1566439077.5319004 1566439099.905073
print(ctime, mtime, atime)

# Unix时间戳转换成时间
def unix2time(unix):
  time_local = time.localtime(unix)
  dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
  return dt

# 将Unix时间戳转换成时间
# 结果例子:2019-08-22 09:10:01 2019-08-22 09:57:57 2019-08-22 09:58:19
print(unix2time(ctime),unix2time(mtime),unix2time(atime))

目录和文件的移动

要移动目录或文件,可以使用shutil.move()函数。

import shutil
# 移动目录或文件
shutil.move('dir1', 'dir2')
shutil.move('1.txt', 'dir2')

目录和文件的拷贝

要拷贝目录或文件,可以使用shutil.copytree()和shutil.copy()函数。

import shutil
# 拷贝整个目录
shutil.copytree('dir1','dir1_bak')

# 拷贝单个文件,第2个参数可以是目录,也可以是文件名
shutil.copy('1.txt', 'dir2/1_bak.txt')
shutil.copy('2.txt', 'dir2')

目录和文件的删除

要删除整个目录,可以使用shutil.rmtree()函数。

import shutil
# 删除整个目录
shutil.rmtree('dir1_bak')

以上就是Python目录和文件处理总结详解的详细内容,更多关于Python目录和文件处理总结的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。