1. 简介
注:文末有福利领取哦
Python 的 os 模块提供了许多接口用于与操作系统进行交互,包括文件操作、目录操作、路径操作、环境变量操作、系统信息获取等。以下是 os 模块中常用的接口及其解释:
-
文件和目录操作:
os.remove(path)
: 删除指定路径的文件。os.rename(src, dst)
: 重命名文件或目录。os.mkdir(path)
: 创建新目录。os.rmdir(path)
: 删除指定目录。os.listdir(path)
: 返回指定目录下的所有文件和目录列表。
-
路径操作:
os.path.join(path1, path2, ...)
:拼接路径。os.path.abspath(path)
: 返回路径的绝对路径表示。os.path.exists(path)
: 判断路径是否存在。os.path.isfile(path)
: 判断路径是否为文件。os.path.isdir(path)
: 判断路径是否为目录。
-
环境变量操作:
os.getenv(key)
: 获取指定环境变量的值。os.putenv(key, value)
: 设置指定环境变量的值。os.environ
: 包含当前环境变量的字典。
-
系统信息:
os.name
: 返回当前操作系统的名称(‘posix’ 或 ‘nt’)。os.uname()
: 返回关于操作系统的信息(仅限 Unix 系统)。os.getlogin()
: 返回当前登录用户名。
-
权限和属性:
os.chmod(path, mode)
: 修改文件或目录的权限。os.stat(path)
: 获取文件或目录的状态信息。os.utime(path, times)
: 修改文件或目录的访问和修改时间。
-
执行系统命令:
os.system(command)
: 在子 shell 中执行系统命令。os.popen(command)
: 执行系统命令并返回一个文件对象。
下面我会针对常用的接口进行代码示例和说明。
2. 基本文件和目录操作
2.1 获取当前工作目录
os.getcwd()
: 返回当前工作目录的绝对路径。
import os
current_directory = os.getcwd()
print("Current directory:", current_directory)
2.2 创建目录
os.mkdir(path)
: 创建一个新目录。
import os
new_dir_path = "new_directory"
os.mkdir(new_dir_path)
2.3 判断路径是否是目录
os.path.isdir(path)
: 如果给定路径是目录,则返回True
。
import os
path = "some_directory"
if os.path.isdir(path):
print(f"{path} is a directory.")
else:
print(f"{path} is not a directory.")
3. 文件操作
3.1 检查文件是否存在
os.path.exists(path)
: 如果指定路径存在,则返回True
。
import os
file_path = "file.txt"
if os.path.exists(file_path):
print(f"{file_path} exists.")
else:
print(f"{file_path} does not exist.")
3.2 删除文件
os.remove(file_path)
: 删除指定的文件。
import os
file_path = "file_to_delete.txt"
os.remove(file_path)
3.3 重命名文件
os.rename(src, dst)
: 重命名文件或目录。
import os
old_file_name = "old_name.txt"
new_file_name = "new_name.txt"
os.rename(old_file_name, new_file_name)
4. 高级文件/目录操作
4.1 遍历目录
os.listdir(directory)
: 返回指定目录中的所有文件和子目录名称。
import os
directory_path = "some_dir"
for item in os.listdir(directory_path):
print(item)
4.2 递归遍历目录
- 使用递归函数结合
os.path.join()
进行深度优先搜索。
import os
def list_files_recursively(directory):
for root, dirs, files in os.walk(directory):
for file in files:
print(os.path.join(root, file))
list_files_recursively("root_directory")
5. 获取环境变量
通过os.environ
可以获取当前系统的所有环境变量及其对应的取值。
import os
# 获取单个环境变量的取值
home_directory = os.environ.get('HOME')
print("Home directory:", home_directory)
# 获取所有环境变量及其取值
for key, value in os.environ.items():
print(f"{key}: {value}")
6. 设置/修改环境变量
使用os.environ[key] = value
来设置或修改一个环境变量。
import os
# 设置新的环境变量
os.environ['MY_VAR'] = 'my_value'
# 修改已存在的环境变量
os.environ['PATH'] += ':/new_path'
# 保存这些更改
os.putenv('CUSTOM_VAR', 'custom_value') # 可选项,保存更改至OS环境
7. 删除环境变量
可以使用del os.environ[key]
来删除一个环境变量。
import os
# 删除特定环境变量
if 'MY_VAR' in os.environ:
del os.environ['MY_VAR']
# 保存更改
os.putenv('MY_VAR', '') # 删除 MY_VAR 变量
8.常见面试题
面试题:解释os.path.abspath()
和os.path.realpath()
之间的区别是什么?
答案:
os.path.abspath(path)
函数返回给定路径的绝对路径形式。这意味着它将消除所有符号链接、符号名等,并且将当前工作目录添加到相对路径。os.path.realpath(path)
函数通过执行实际系统调用来确定给定路径的真实路径。它处理绝对路径和符号链接,然后返回规范化的绝对路径。
实际上,os.path.abspath()
只是将相对路径转换为绝对路径,而os.path.realpath()
则会解析所有符号链接并返回一个指向真实文件的路径。
如果你对Python入门感兴趣,那么你需要的话可以
点击这里