博客
关于我
Python之操作系统
阅读量:494 次
发布时间:2019-03-06

本文共 3351 字,大约阅读时间需要 11 分钟。

#操作系统函数及其应用实例

1. 操作系统函数

1.1 返回操作系统类型

在Python中,可以通过os.name函数来获取操作系统的类型。以下是常见的返回值:

  • 'posix':表示 POSIX 具有线性系统(如 Linux)
  • 'nt':表示 Windows 系统
  • 其它:表示其他类型的操作系统(例如 Mac OS)
import osprint(os.name)

1.2 获取操作系统详细信息

使用 os.uname() 函数可以获取更详细的操作系统信息,包括:

  • 系统类型(sysname
  • 主机名(nodename
  • 内核版本(release
  • 获取时间(time
  • 是否是64位操作系统(sysconf('仲裁单位大小')
import osinfo = os.uname()print(info)print(info.sysname)print(info.nodename)

1.3 获取系统环境变量

系统环境变量是通过 os.environ对象获取的,可以列出所有环境变量:

import osprint(os.environ)

1.4 获取特定环境变量的值

可以通过os.environ.get('变量名')来获取指定环境变量的值:

import osprint(os.environ.get('PATH'))

1.5 判断是否为绝对路径

使用 os.path.isabs() 函数可以判断是否为绝对路径。例如:

import osprint(os.path.isabs('tmp/passwd'))print(os.path.isabs('/tmp/wes'))

1.6 生成绝对路径

默认从当前工作目录生成绝对路径:

import osprint(os.path.abspath('hello.png'))

在指定目录下生成绝对路径:

import osprint(os.path.join('/home/kiosk', 'hello.png'))

1.7 获取文件名和目录名

os.path.basename()获取文件名,os.path.dirname()获取目录名:

import osfilename = '/home/kiosk/Desktop/file'print(os.path.basename(filename))  # 输出:fileprint(os.path.dirname(filename))  # 输出:/home/kiosk/Desktop

1.8 创建和删除目录

使用 os.mkdir() 创建目录,os.rmdir() 删除目录:

import osos.mkdir('westos')os.rmdir('westos')

创建递归目录:

import osos.makedirs('westos/linux')os.rmdir('westos/linux')

1.9 创建和删除文件

创建文件:

import osos.mknod('westos.txt')

删除文件:

import osos.remove('westos.txt')

1.10 重命名文件

重命名文件或目录:

import osos.rename('redhat.txt', 'date.txt')

1.11 判断文件或目录是否存在

检查文件或目录是否存在:

import osprint(os.path.exists('data.txt'))

1.12 分离文件名和后缀名

使用 os.path.splitext() 分离文件名和扩展名:

import osprint(os.path.splitext('data.txt'))  # 输出:('data', '.txt')

1.13 分离目录名和文件名

使用 os.path.split() 分离路径和文件名:

import osprint(os.path.split('/tmp/linux/hello.png'))  # 输出:('/tmp/linux', 'hello.png')

2. 目录遍历

使用 os.walk() 遍历指定目录下的所有文件和子目录。代码示例:

import osfrom os.path import joinfor root, dir, files in os.walk('/var/log'):    print(f"目录:{root}")    print(f"子目录:{dir}")    print(f"文件:{files}")    for name in files:        print(join(root, name))

3. 操作系统综合练习

案例1

1.生成一个大文件ips.txt,要求包含1200行随机生成的172.25.254.0/24段的IP地址。

2.读取ips.txt文件,统计IP出现频率,输出前10个出现次数最多的IP地址。

代码如下:

import randomimport string# 生成IP地址函数def generate_ip():    ips = ['172.25.254.0', '172.25.254.1', ..., '172.254.254.254']  # Generate所有可能的IP地址    random_ip = random.sample(ips, 1200)    with open('ips.txt', 'a') as f:        for ip in random_ip:            f.write(f"{ip}\n")# 统计IP频率函数def count_ip_frequency():    ips = set()    with open('ips.txt', 'r') as f:        ips_list = [line.strip() for line in f if line.strip()]        for ip in ips_list:            if ip not in ips:                ips.add(ip)                ips_dict[ip] = 1            else:                ips_dict[ip] += 1    sorted_ips = sorted(ips_dict.items(), key=lambda x: x[1], reverse=True)[:10]    print("前10名IP地址:")    print("\n".join([f"{ip} occurs {count} times" for ip, count in sorted_ips]))# 执行生成和统计generate_ip()count_ip_frequency()

案例2

生成100个MAC地址并写入文件中,MAC地址格式为XX-XX-XX-XX-XX,前三部分固定为01-AF-3B,后面三部分随机生成。

代码如下:

import randomimport stringdef generate_mac():    mac_base = '01-AF-3B'    hex_digits = string.hexdigits    for _ in range(3):        random_hex = random.sample(hex_digits, 2)        mac_part = '-'.join(random_hex)        mac_base += mac_part    return mac_basewith open('mac_file.txt', 'w') as f:    for _ in range(100):        mac = generate_mac()        f.write(f"{mac}\n")

以上代码可根据实际需求进行修改和优化,确保在不同的操作系统和环境下正常运行。

转载地址:http://zxldz.baihongyu.com/

你可能感兴趣的文章
NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
查看>>
NutzWk 5.1.5 发布,Java 微服务分布式开发框架
查看>>
NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
查看>>
NUUO网络视频录像机 upload.php 任意文件上传漏洞复现
查看>>