Python 中的 os 模块

Python 中的 os 模块

在Python中,os 模块是一个内置的标准库,提供了许多与操作系统交互的功能。它允许你执行一系列操作,如文件和目录操作、环境变量管理等。要在Python脚本中使用os模块,你需要首先导入它。

一些常见的用法:

  • 创建和删除目录
  • 改变当前工作目录
  • 文件操作
  • 获取文件和目录列表
  • 环境变量
python 复制代码
# 导入os模块
import os

创建和删除目录

  • 创建一个新目录:
python 复制代码
os.mkdir('new_directory')
  • 如果要创建多级目录,可以使用 os.makedirs() :
python 复制代码
os.makedirs('path/new_directory')
  • 删除目录:
python 复制代码
os.rmdir('new_directory')  # 删除目录
os.removedirs('path/new_directory')  # 删除多级目录

改变当前工作目录

  • 获取当前的工作目录:
python 复制代码
current_dir = os.getcwd()
print(current_dir)
  • 改变当前的工作目录:
python 复制代码
os.mkdir('new_directory')
os.chdir('new_directory')
current_dir = os.getcwd()
print(current_dir)

文件操作

  • 重命名文件:
python 复制代码
# 先切换回当前目录
os.chdir('../')
# 文件改名
os.rename('oldname.txt', 'newname.txt')
  • 删除文件:
python 复制代码
os.remove('file_name.txt')

获取文件和目录列表

  • 列出指定目录下的所有文件和子目录:
python 复制代码
for entry in os.listdir('.'):
    print(entry)

环境变量

设置环境变量(只在当前进程中有效):

python 复制代码
os.environ['ENV_VARIABLE_NAME'] = 'value'

获取环境变量:

python 复制代码
value = os.getenv('ENV_VARIABLE_NAME')
value

执行系统命令

  • 格式:os.system('command')
python 复制代码
os.system('ls') 

获取操作系统相关的属性

python 复制代码
print(os.name)

文件和路径操作

python 复制代码
print(os.path.exists('somefile.txt'))  # 判断文件是否存在
print(os.path.isfile('somefile.txt'))  # 判断是否为文件
print(os.path.isdir('somedir'))  # 判断是否为目录
print(os.path.abspath('somefile.txt'))  # 获取绝对路径
print(os.path.join('somedir', 'somefile.txt'))  # 路径连接
print(os.path.basename('somedir/somefile.txt'))  # 获取文件名
print(os.path.dirname('somedir/somefile.txt'))  # 获取目录路径

文件和目录的高级操作

对于更复杂的文件和目录操作,如复制、移动文件等,推荐使用 shutil 模块:

python 复制代码
import shutil
shutil.copyfile('data.db', 'archive.db')  # 复制文件
shutil.move('/build/executables', 'installdir')  # 移动文件 

文件通配符

  • 使用glob模块来查找符合特定规则的文件列表
python 复制代码
import glob
files = glob.glob('*.txt')  # 查找所有.txt文件
files

附件

本文对应的jupyter notebook源码链接,欢迎下载练习:https://download.csdn.net/download/fx_yzjy101/89835492

如有问题请留言。

相关推荐
未来之窗软件服务3 小时前
Go 利器 GoReSym:剥离符号恢复 Go 二进制元数据—东方仙盟
开发语言·golang·仙盟创梦ide·东方仙盟
fpcc3 小时前
AI和大模型—JEV模型
人工智能
weixin_446260853 小时前
面向演进式企业AI智能体技能的持续流程级评估
人工智能
言乐63 小时前
Python区分广度优先深度优先宽度优先的区别
python·算法·深度优先·广度优先·宽度优先
量子-Alex3 小时前
【大模型后训练SFT】Finetuning with Sampling: SFT Learns Better Than You Think
人工智能·深度学习·机器学习
ForDreamMusk3 小时前
Transformer Encoder Block
人工智能·深度学习·transformer
W***25923 小时前
深度解读AI Work Agent长程任务执行的底层机制与落地边界
人工智能
打工仔折腾 AI3 小时前
LLaMA 1 到 LLaMA 3 架构演进拆解:从 RoPE、GQA 到词表扩张
人工智能·后端·python·深度学习·langchain·llama
朝朝辞暮i4 小时前
C++ 第 32 课:main()、rclcpp::init()、spin()、shutdown()
开发语言·c++·算法
网络毒刘4 小时前
开源 AI 编程助手横向对比(Cursor / Continue / Aider):能力边界与 AtomGit 落地建议
人工智能·开源