欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Python教学-最常用的标准库之一——OS库

Python教学-最常用的标准库之一——OS库

2025/2/22 2:12:47 来源:https://blog.csdn.net/m0_65482549/article/details/145637351  浏览:    关键词:Python教学-最常用的标准库之一——OS库

os 库是 Python 标准库中的一个模块,它提供了一种方便的方式来使用操作系统相关的功能。os 模块提供了很多函数,可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的 os 模块的功能和示例:

1. 文件和目录操作

1.1 当前工作目录
  • os.getcwd():获取当前工作目录。
  • os.chdir(path):改变当前工作目录。
import oscurrent_dir = os.getcwd()
print("当前工作目录:", current_dir)os.chdir('/path/to/new/directory')
new_dir = os.getcwd()
print("改变后的工作目录:", new_dir)
1.2 创建和删除目录
  • os.mkdir(path):创建单个目录。
  • os.makedirs(path, exist_ok=False):递归创建目录。如果 exist_ok=True,目录已存在时不报错。
  • os.rmdir(path):删除单个空目录。
  • os.removedirs(path):递归删除目录。
os.makedirs('dir1/dir2', exist_ok=True)
os.rmdir('dir1/dir2')  # 只能删除空目录
os.removedirs('dir1/dir2')  # 递归删除
1.3 列出目录内容
  • os.listdir(path):列出指定目录下的所有文件和目录。
files_and_dirs = os.listdir('.')
print("当前目录下的文件和目录:", files_and_dirs)
1.4 文件路径操作
  • os.path.join(path, *paths):智能拼接路径。
  • os.path.abspath(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):获取文件大小(字节)。
full_path = os.path.join('dir1', 'file.txt')
abs_path = os.path.abspath(full_path)
dir_name = os.path.dirname(abs_path)
file_name = os.path.basename(abs_path)
print("完整路径:", full_path)
print("绝对路径:", abs_path)
print("目录名:", dir_name)
print("文件名:", file_name)
print("路径是否存在:", os.path.exists(abs_path))
print("是否为文件:", os.path.isfile(abs_path))
print("是否为目录:", os.path.isdir(dir_name))
if os.path.isfile(abs_path):print("文件大小:", os.path.getsize(abs_path), "字节")

2. 环境变量

  • os.getenv(key, default=None):获取环境变量的值,如果不存在则返回 default
  • os.environ:获取一个包含所有环境变量的字典。
  • os.putenv(key, value):设置环境变量(仅在某些平台上有效,建议使用 os.environ)。
  • os.unsetenv(key):删除环境变量(仅在某些平台上有效)。
# 获取环境变量
home_dir = os.getenv('HOME')
print("HOME 环境变量:", home_dir)# 设置环境变量
os.environ['MY_VAR'] = 'my_value'
print("MY_VAR 环境变量:", os.getenv('MY_VAR'))# 删除环境变量(仅在支持 unsetenv 的平台上有效)
# os.unsetenv('MY_VAR')

3. 执行系统命令

  • os.system(command):在子终端执行系统命令。
  • os.popen(cmd, mode='r', buffering=-1):打开一个管道连接到或从一个命令。
  • subprocess 模块:更强大和灵活的子进程管理模块,建议使用 subprocess 代替 os.systemos.popen
# 使用 os.system 执行命令
exit_code = os.system('ls -l')
print("命令执行后的退出码:", exit_code)# 使用 os.popen 执行命令并读取输出
process = os.popen('ls -l')
output = process.read()
print("命令输出:\n", output)
process.close()

4. 文件和目录权限

  • os.chmod(path, mode):改变文件或目录的权限。
  • os.chown(path, uid, gid):改变文件或目录的所有者和组(仅在 Unix 上有效)。
# 假设你有一个文件 'file.txt'
# os.chmod('file.txt', 0o755)  # 设置文件权限为 rwxr-xr-x

5. 临时文件和目录

  • tempfile.TemporaryFile():创建一个临时文件,文件关闭后会自动删除。
  • tempfile.NamedTemporaryFile():创建一个命名临时文件,文件关闭后会自动删除。
  • tempfile.mkdtemp():创建一个临时目录,可以手动删除。
  • tempfile.TemporaryDirectory():创建一个临时目录,目录关闭后会自动删除。
import tempfile# 创建一个临时文件
with tempfile.TemporaryFile() as temp_file:temp_file.write(b'Hello, World!')temp_file.seek(0)print(temp_file.read())# 创建一个命名临时文件
with tempfile.NamedTemporaryFile(delete=False) as named_temp_file:temp_file_name = named_temp_file.nameprint("命名临时文件:", temp_file_name)# 可以手动删除文件# os.remove(temp_file_name)# 创建一个临时目录
temp_dir = tempfile.mkdtemp()
print("临时目录:", temp_dir)
# 可以手动删除目录
# os.rmdir(temp_dir) 或 os.removedirs(temp_dir) 如果是递归创建的# 创建一个自动删除的临时目录
with tempfile.TemporaryDirectory() as temp_dir_ctx:print("自动删除的临时目录:", temp_dir_ctx)

这些只是 os 模块中的一些基本功能,实际上 os 模块的功能非常丰富,适用于各种操作系统相关的任务。如果需要更复杂的子进程管理,建议查阅 subprocess 模块。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词