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

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

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

1. 操作系统函数

1.1 返回操作系统类型

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

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

1.2 获取操作系统详细信息

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

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

1.3 获取系统环境变量

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

import os
print(os.environ)

1.4 获取特定环境变量的值

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

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

1.5 判断是否为绝对路径

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

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

1.6 生成绝对路径

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

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

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

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

1.7 获取文件名和目录名

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

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

1.8 创建和删除目录

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

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

创建递归目录:

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

1.9 创建和删除文件

创建文件:

import os
os.mknod('westos.txt')

删除文件:

import os
os.remove('westos.txt')

1.10 重命名文件

重命名文件或目录:

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

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

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

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

1.12 分离文件名和后缀名

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

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

1.13 分离目录名和文件名

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

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

2. 目录遍历

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

import os
from os.path import join
for 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 random
import 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 random
import string
def 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_base
with open('mac_file.txt', 'w') as f:
for _ in range(100):
mac = generate_mac()
f.write(f"{mac}\n")

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

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

你可能感兴趣的文章
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置Https证书
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>