python内置库os、 sys、文件处理

内置库 os

os 概述

  • os: Operating System–操作系统
  • os 模块的常用功能
  • 跨平台的差异

os 使用

  • 导入 os 模块
  • 查看 os 模块使用文档
    • help(os)
    • dir(os)
import os

# 查看os模块说明文档
help(os)

# 查看os模块的属性和方法
print(dir(os))

os 常用方法

  • 系统相关
  • 操作目录
  • 操作路径

os 操作系统相关

  • os.name:获取系统名称
  • os.environ:获取系统环境变量信息
  • os.getenv(‘PATH’):获取指定名称的环境变量信息
  • os.system():执行系统指令
import os

# os.name:获取系统名称 nt代表window,posix代表linux
print(os.name)

# os.environ:获取系统环境变量信息
print(os.environ)

# os.getenv('PATH'):获取指定名称的环境变量信息
print(os.getenv('PATH'))

# os.system():执行系统指令
os.system('pwd')  # linux系统
print(os.system('dir'))  # windows系统

os 目录相关

  • os.getcwd():获取当前目录
  • os.chdir():切换目录
  • os.listdir():列出当前目录内容
  • os.mkdir():创建空目录
  • os.makedirs():递归创建多级目录
  • os.rmdir():删除空目录
  • os.rename():重命名目录
  • os.remove():删除文件
"""目录相关"""
# 获取当前所在目录 get current directory
print(os.getcwd())
# 切换目录 change directory
os.chdir('..')
# 列出当前目录下的所有文件
print(os.listdir())
# 创建空目录
os.mkdir('new')
# 递归创建多级空目录
os.makedirs('a/b/c')
# 删除空目录
os.rmdir('new')
# 重命名目录
os.rename('a', 'a1')
# 删除文件
os.remove('demo.txt')

os 路径相关

path 方法 说明
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.path.split(path) 分割路径
os.path.join(path) 拼接路径
os.path.exists(path) 判断路径是否存在
os.path.isdir(path) 判断是否是目录
os.path.isfile(path) 判断是否是文件
os.path.getsize(path) 获取文件大小

os 路径用法实例

# 返回绝对路径
print(os.path.abspath("./os_demo.py"))
# 返回文件名
print(os.path.basename("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 返回文件路径
print(os.path.dirname("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 分割路径
print(os.path.split("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 拼接路径
print(os.path.join("/Users/xiaofo/coding/pythonProject/course", "os_demo.py"))
# 判断路径是否存在
print(os.path.exists("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
print(os.path.exists("./os_demo.py"))
# 判断是否是目录
print(os.path.isdir("../demos"))
# 判断是否是文件
print(os.path.isfile("./hello.py"))
# 获取文件大小
print(os.path.getsize("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))

内置库 sys

sys 概述

  • 是 Python 自带的内置模块
  • 是与 Python 解释器交互的桥梁

sys 使用

  • 常用属性
  • 常用方法
  • 导入 sys 模块
# 导入sys模块
import sys

# 查看sys模块帮助文档
help(sys)

# 查看sys模块的属性和方法
print(dir(sys))

sys 常用属性

  • sys.version:返回 Python 解释器版本
  • sys.platform:返回操作系统平台名称
  • sys.argv:返回外部向程序传递的参数
  • sys.modules:返回已导入的模块信息
  • sys.path:返回导包的搜索路径列表
"""sys模块常用属性"""
# 返回Python 解释器版本
print(sys.version)
# 返回操作系统平台名称
print(sys.platform)
# 返回外部向程序传递的参数
print(sys.argv)
# 返回已导入的模块信息
print(sys.modules)
print(sys.modules.keys())
# 返回导包的搜索路径列表
print(sys.path)

sys 常用方法

  • sys.getdefaultencoding():获取编码方式
  • sys.exit():运行时退出
"""sys模块常用方法"""
# 获取系统当前编码
print(sys.getdefaultencoding())

# 运行时退出
sys.exit()

Python 内置库 - 文件处理

霍格沃兹测试开发学社

http://ceshiren.com

IO 操作

文件操作步骤

  • 打开文件
  • 操作文件:读/写内容
  • 关闭文件(读写完成,要及时的关闭)

open 方法

def open(file, mode='r', buffering=None, 
encoding=None, errors=None, newline=None, 
closefd=True):

文件读写模式

实战1

# 第一步:(以只读模式)打开文件
f = open('data.txt', 'r', encoding='utf-8')  

# 第二步:读取文件内容
print(f.read())
 
# 第三步:关闭文件
f.close()

读操作

# 第一步:(以只读模式)打开文件
f = open('data.txt', 'r', encoding='utf-8')

# 第二步:读取文件内容
# 换行符会占一个字符
# print(f.read(15))
# result = f.read()
# print(type(result)) ---<class 'str'>

# 读完一次之后,再次读取文件,内容将不是完整的,需要重新设置游标位置
# 设置游标的位置
# f.seek(0)

# result1 = f.readlines()
# print(type(result1)) ---<class 'list'>
# print(result1)

print(f.readline())
print(f.readline())


# 第三步:关闭文件
f.close()

忘记关闭文件的危害

  • 打开文件达到一定数量, 将会导致打开失败
  • 占用内存空间,非常浪费资源
  • 会导致系统自动回收资源,而丢失数据

with 用法

with open('data.txt', 'r', encoding='utf-8') as f:
    print(f.read())
print(f.closed)   ## 查看关闭状态

读操作实战

  • 读取指定长度的内容
  • 读取文件中的一行
  • 遍历打印文件中的每一行

写操作实战

  • mode=“w+”, 读写权限,会新建文件,清空内容再写入
  • mode=“r+”, 读写权限,替换原来的内容
  • mode=“a+”, 读写权限,追加内容
# r+替换原来的内容,不是完全替换,一个个替换
# w+ 会清空,再写入,如果没有文件,会创建新文件
# with open('data1.txt','w+',encoding='utf-8') as f:
#     print(f.write('格兰芬多'))
#     # hello world!

# a+ 会在最末尾的位置,追加数据,不清空原来的内容
with open('data1.txt','a+',encoding='utf-8') as f:
    print(f.write('\n赫敏'))
    # hello world!

总结

  • 使用 with 方法,会自动完成关闭操作
  • 通过 python 封装的 API,可以实现读,写,追加操作
  • 文件打开要使用utf-8的编码格式(以免中文出现乱码)