目录:
os 模块用于与操作系统交互的核心模块,提供了丰富的文件和目录操作、环境变量管理、路径处理等功能。
os.getcwd() 获取当前工作目录;
os.chdir() 用于改变当前工作目录,相当于 cd 命令;
os.curdir 和 os.pardir 用于表示当前目录和上一级目录。
import os
print(os.getcwd())
os.chdir('/Users/dkvirus/Documents/vscode-docs/python_scripts')
print(os.getcwd())
print(os.curdir) # '.'
print(os.pardir) # '..'
os.mkdir(path): 生成单级目录,不能递归创建;
os.makedirs(path): 可生成多层递归目录;
os.mkdir('new_directory') # 创建单层目录
os.makedirs('a1/a2/a3') # 递归创建多层目录
os.rmdir(path): 删除单级空目录,若目录不为空则无法删除;
os.removedirs(path): 递归删除目录。若目录为空则删除,并递归到上一级目录,依此类推;
os.rmdir('new_directory') # 删除空目录
os.removedirs('a1/a2/a3') # 递归删除空目录
os.listdir(path): 列出指定目录下的所有文件和子目录(包括隐藏文件),并以列表方式返回;
print(os.listdir('.')) # 列出当前目录所有内容
os.remove(path): 删除一个文件;
os.remove('old_file.txt') # 删除文件
os.rename(src, dst): 重命名文件或目录;
os.rename('old_name.txt', 'new_name.txt') # 重命名文件
os.stat(path): 获取文件/目录的详细信息,包括大小、修改时间等。
print(os.stat('.'))
# 输出: os.stat_result(st_mode=16877, st_ino=56702390, st_dev=16777233, st_nlink=30, st_uid=501, st_gid=20, st_size=960, st_atime=1770256614, st_mtime=1770256614, st_ctime=1770256614)
字段含义如下:
os.chmod(path, mode): 更改文件权限;
# 修改文件为 644 权限:所有者可读写,组和其他用户只读
os.chmod('example.txt', 0o644)
# 修改文件为 755 权限:所有者可读写执行,组和其他用户可读执行
os.chmod('script.sh', 0o755)
# 修改文件为 600 权限:仅所有者可读写,常用于私密文件如密钥
os.chmod('secret.key', 0o600)
os.chown(path, uid, gid): 更改文件所有者(Unix系统);
import os
import pwd
import grp
# 示例1:直接使用数字 ID 进行修改
# 将文件的所有者 ID 改为100,组 ID 保持不变(-1)
os.chown("/tmp/foo.txt", 100, -1)
# 示例2:通过用户名和组名获取 ID 后进行修改
user_name = 'newuser'
group_name = 'newgroup'
try:
# 获取用户ID和组ID
uid = pwd.getpwnam(user_name).pw_uid
gid = grp.getgrnam(group_name).gr_gid
# 改变文件的所有者和组
os.chown('/path/to/file', uid, gid)
print(f"Changed ownership successfully.")
except KeyError:
print(f"User or group not found.")
os.environ: 获取系统环境变量;
os.environ.get(key): 获取特定环境变量的值;
os.environ[key] = value: 设置环境变量(仅在当前进程有效)。
import os
print(os.environ)
print(os.environ.get('HOME'))
os.system(command): 运行 shell 命令,直接显示结果;
os.popen(command): 执行命令并获取输出;
import os
os.system('ls')
output = os.popen('ls -l').read()
print(output)
↶ 返回首页 ↶