Python OS 文件/目录方法

简介: Python OS 文件/目录方法

Python的os模块提供了与操作系统交互的功能,其中就包括了文件和目录的管理。下面我将详细介绍os模块中与文件和目录操作相关的方法,并通过代码示例来演示如何使用它们。


1. 目录操作

1.1 获取当前工作目录

使用os.getcwd()可以获取当前Python脚本的工作目录。

python

 

import os

 

current_dir = os.getcwd()

 

print("当前工作目录:", current_dir)

1.2 切换工作目录

使用os.chdir(path)可以切换当前工作目录到指定的路径。

python

 

import os

 

os.chdir("/path/to/directory")

 

print("切换后的工作目录:", os.getcwd())

1.3 创建目录

使用os.makedirs(path, exist_ok=False)可以递归地创建目录。如果exist_ok设置为True,则目录已存在时不会抛出异常。

python

 

import os

 

os.makedirs("/path/to/new/directory", exist_ok=True)

1.4 删除目录

使用os.rmdir(path)可以删除空目录,而os.removedirs(path)则可以递归地删除空目录。

python

 

import os

 

# 删除空目录

 

os.rmdir("/path/to/empty/directory")

 

 

 

# 递归删除空目录

 

os.removedirs("/path/to/empty/directory/tree")

注意:如果目录不为空,上述方法会抛出异常。可以使用shutil.rmtree(path)来删除非空目录。

1.5 列出目录内容

使用os.listdir(path)可以列出指定目录的内容(文件和子目录名)。

python

 

import os

 

contents = os.listdir("/path/to/directory")

 

print("目录内容:", contents)


2. 文件操作

2.1 文件的路径名操作

·

os.path.join(path, *paths): 将一个或多个路径组件组合起来。

·

os.path.split(path): 将路径分割为目录名和文件名两部分。

·

os.path.dirname(path): 返回指定文件或目录的路径名(不包括文件名)。

·

os.path.basename(path): 返回指定文件或目录的文件名。

·

os.path.exists(path): 检查路径是否存在。

·

os.path.isfile(path): 检查路径是否为文件。

·

os.path.isdir(path): 检查路径是否为目录。

·

os.path.getsize(path): 返回指定文件的大小(以字节为单位)。

·

python

 

import os

 

 

 

# 路径名操作

 

full_path = os.path.join("/path", "to", "file.txt")

 

print("完整路径:", full_path)

 

 

 

dir_name, file_name = os.path.split(full_path)

 

print("目录名:", dir_name)

 

print("文件名:", file_name)

 

 

 

print("是否为文件:", os.path.isfile(full_path))

 

print("是否为目录:", os.path.isdir(dir_name))

 

print("文件大小:", os.path.getsize(full_path))

2.2 读取和写入文件

虽然os模块提供了许多与文件和目录交互的功能,但它本身并不直接用于读取或写入文件内容。这通常通过内置的open()函数来实现。

python

 

# 写入文件

 

with open("file.txt", "w") as f:

 

f.write("Hello, world!")

 

 

 

# 读取文件

 

with open("file.txt", "r") as f:

 

content = f.read()

 

print("文件内容:", content)

2.3 复制、移动和删除文件

·

虽然os模块没有直接提供复制和移动文件的方法,但可以使用shutil模块来实现这些功能。

·

·

使用os.remove(path)可以删除文件。

·

python

 

import shutil

 

import os

 

 

 

# 复制文件

 

shutil.copy("source.txt", "destination.txt")

 

 

 

# 移动文件(重命名)

 

shutil.move("source.txt", "new_location.txt")

 

 

 

# 删除文件

 

os.remove("file_to_delete.txt")


3. 文件和目录的权限

· os.chmod(path, mode): 更改文件或目录的

 

相关文章
|
6月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
512 6
|
10月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
403 17
|
11月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
486 14
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
927 30
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
917 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
Python
文件元数据获取方法对比:`os.path` 与 `os.stat`
本文对比了Python中两种获取文件元数据的方法:`os.path`和`os.stat`。通过示例代码展示了如何获取文件大小和修改时间,并从性能、功能性和代码可读性三方面进行了详细对比。最终给出了根据具体需求选择合适方法的最佳实践建议。
304 2
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
735 2
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
541 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法