本文共 3420 字,大约阅读时间需要 11 分钟。
#操作系统函数及其应用实例
在Python中,可以通过os.name函数来获取操作系统的类型。以下是常见的返回值:
import osprint(os.name)
使用 os.uname() 函数可以获取更详细的操作系统信息,包括:
sysname)nodename)release)time)sysconf('仲裁单位大小'))import osinfo = os.uname()print(info)print(info.sysname)print(info.nodename)
系统环境变量是通过 os.environ对象获取的,可以列出所有环境变量:
import osprint(os.environ)
可以通过os.environ.get('变量名')来获取指定环境变量的值:
import osprint(os.environ.get('PATH')) 使用 os.path.isabs() 函数可以判断是否为绝对路径。例如:
import osprint(os.path.isabs('tmp/passwd'))print(os.path.isabs('/tmp/wes')) 默认从当前工作目录生成绝对路径:
import osprint(os.path.abspath('hello.png')) 在指定目录下生成绝对路径:
import osprint(os.path.join('/home/kiosk', 'hello.png')) 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
使用 os.mkdir() 创建目录,os.rmdir() 删除目录:
import osos.mkdir('westos')os.rmdir('westos') 创建递归目录:
import osos.makedirs('westos/linux')os.rmdir('westos/linux') 创建文件:
import osos.mknod('westos.txt') 删除文件:
import osos.remove('westos.txt') 重命名文件或目录:
import osos.rename('redhat.txt', 'date.txt') 检查文件或目录是否存在:
import osprint(os.path.exists('data.txt')) 使用 os.path.splitext() 分离文件名和扩展名:
import osprint(os.path.splitext('data.txt')) # 输出:('data', '.txt') 使用 os.path.split() 分离路径和文件名:
import osprint(os.path.split('/tmp/linux/hello.png')) # 输出:('/tmp/linux', 'hello.png') 使用 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)) 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() 生成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/