Python 在自动化运维时常用到的方法

Python 在自动化运维时常用到的方法

1. 获取当前工作目录

用于获取当前 Python 脚本运行的目录路径:

import os
os.getcwd()
2. 返回指定目录下的所有文件和目录名

列出目录下的文件和文件夹:

os.listdir('path/to/directory')  # 默认为当前目录
3. 删除一个文件
os.remove('file_path')
4. 删除多个目录

删除多个嵌套目录:

os.removedirs(r"/python/test")
5. 检验给出的路径是否是一个文件

判断路径是否为文件:

os.path.isfile('file_path')
6. 检验给出的路径是否是一个目录

判断路径是否为目录:

os.path.isdir('directory_path')
7. 判断是否为绝对路径
os.path.isabs('path')
8. 检验路径是否真实存在
os.path.exists('path')
9. 返回路径的目录名和文件名

拆分路径为目录和文件名:

os.path.split('/home/user/docs/file.txt')  # 返回 ('/home/user/docs', 'file.txt')
10. 分离扩展名

获取文件名和扩展名:

os.path.splitext('file.txt')  # 返回 ('file', '.txt')
11. 获取路径名

返回文件的目录部分:

os.path.dirname('/home/user/docs/file.txt')  # 返回 '/home/user/docs'
12. 获取文件名

仅返回文件名:

os.path.basename('/home/user/docs/file.txt')  # 返回 'file.txt'
13. 运行 shell 命令
os.system('echo Hello World!')
14. 读取和设置环境变量
# 读取环境变量
os.getenv('HOME')

# 设置环境变量
os.putenv('MY_ENV_VAR', 'value')
15. 获取当前平台使用的行终止符

不同操作系统有不同的行终止符:

os.linesep  # Windows: '\r\n', Linux: '\n', macOS: '\r'
16. 显示当前平台名称
os.name  # Windows: 'nt', Linux/Unix: 'posix'
17. 重命名文件或目录
os.rename('old_name', 'new_name')
18. 创建多级目录
os.makedirs(r'c:\python\test')
19. 创建单个目录
os.mkdir('test')
20. 获取文件属性

获取文件的属性信息:

os.stat('file')
21. 修改文件权限和时间戳
os.chmod('file', 0o777)  # 0o777 表示文件的权限
22. 终止当前进程
os.exit()  # 仅在 Python 2.4 可用
23. 获取文件大小
os.path.getsize('file')

文件操作

1. 创建空文件
os.mknod('test.txt')
2. 打开文件

如果文件不存在,将自动创建:

fp = open('test.txt', 'w')  # 打开或创建文件
3. 文件的打开模式
  • w: 以写模式打开
  • a: 以追加模式打开(从文件末尾开始写入)
  • r+: 以读写模式打开
  • w+: 以读写模式打开(会清空文件)
  • a+: 以读写模式打开(写入内容从文件末尾开始)
  • rb, wb, ab, rb+, wb+, ab+: 以二进制模式打开
4. 读取文件内容
# 读取文件内容
fp.read([size])  # size 为读取的字节数
fp.readline([size])  # 读取一行
fp.readlines()  # 读取所有行
5. 写入文件内容
fp.write('Hello World!')
fp.writelines(['line1\n', 'line2\n'])
6. 文件操作常用方法
fp.close()  # 关闭文件
fp.flush()  # 刷新缓冲区内容到磁盘
fp.fileno()  # 返回文件的文件描述符
fp.isatty()  # 判断文件是否为终端设备
fp.tell()  # 获取当前文件指针位置
fp.seek(offset[, whence])  # 移动文件指针到指定位置
fp.truncate([size])  # 截断文件到指定大小

目录操作

1. 创建目录
os.mkdir('dir_name')
2. 复制文件
import shutil
shutil.copyfile('oldfile', 'newfile')
shutil.copy('oldfile', 'newfile')  # newfile 可以是文件或目录
3. 复制文件夹
shutil.copytree('olddir', 'newdir')  # newdir 必须不存在
4. 重命名文件或目录
os.rename('oldname', 'newname')
5. 移动文件或目录
shutil.move('oldpos', 'newpos')
6. 删除文件
os.remove('file')
7. 删除目录
os.rmdir('dir')  # 仅能删除空目录
shutil.rmtree('dir')  # 递归删除目录及其内容
8. 更换当前工作目录
os.chdir('path')

实验示例

以下示例演示了文件读写操作和一些常用方法:

fso = open("f:\\a.txt", 'w+')  # 以 w+ 模式打开文件(会清空文件)
print(fso.tell())  # 文件为空,tell() = 0

fso.write("abcde\n")  # 写入 "abcde\n",总计写入 6 个字符
print(fso.tell())  # tell() = 6

fso.write("fghwm")  # 追加写入 "fghwm",文件总计 11 个字符
print(fso.tell())  # tell() = 11

fso.seek(1, 0)  # 文件指针移动到第 1 个字符
print(fso.tell())  # tell() = 1

print(fso.readline())  # 从第 2 个字符开始读取一行,输出 "bcde\n"
print(fso.tell())  # tell() = 6

fso.truncate(8)  # 文件截断为 8 个字符,文件内容为 "abcde\nf"
print(fso.tell())  # tell() 仍然为 6

print(fso.readline())  # 从第 7 个字符读取,输出 "f"
fso.close()  # 关闭文件

小结

上述内容展示了在自动化运维中常用的 Python 文件操作和目录管理方法。Python 的 osshutil 模块为操作系统交互提供了强大的工具集,结合文件读写操作,可以实现高效的自动化任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Persus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值