Python基础-14.os和sys模块
一、Python-os模块
os 模块提供了非常丰富的方法用来处理文件和目录。
定义三个目录给下面的例子做参考,使用需要导入os模块
# 导入os模块
import os
path = '.'
path1 = 'test/test'
path2 = '/usr/local/test/'
1.os模块常用方法
获取当前工作路径:
# getcwd()获取当前工作路径
os.getcwd()
# 使用path的下面方法获取工作路径
os.path.dirname(os.path.realpath(__file__))
常用的方法:
# listdir() 返回该路径下的所有文件和目录
print(os.listdir(path))
# walk() 深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组
for path, dirs, files in os.walk(path):
print(path, dirs, files)
print("\n")
# makedirs() 生成一个递归的文件夹
os.makedirs(path1)
# rmdir() 删除指定路径下的文件夹
os.rmdir(path1)
# remove() 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
os.remove(path1)
# removedirs() 递归删除目录
os.removedirs(path1)
# rename(src, dst) 重命名文件或目录,从 src 到 dst
src = 'test'
dst = 'test1'
os.rename(src, dst)
# link() 创建硬连接,名为dst,指向参数 src
os.link(src, dst)
# system() 调用系统命令
os.system('date')
2.os模块path方法
path是os下的子方法,有着很多有用的方法。
path的常用方法:
# path.exists() 判断指定路径下的目录是否存在。存在返回True,否则返回False
print(os.path.exists(path1))
# path.isfile() 判断它是否是文件。是返回True,否则返回False
print(os.path.isfile(path1))
# path.isdir() 判断它是否是文件夹。是返回True,否则返回False
print(os.path.isdir(path1))
# path.join() 传入两个path路径,将该路径拼接起来,形成一个新的完整路径
new_path = os.path.join(path2, path1)
print(new_path)
# path.split() 传入一个完整的path路径,将其拆分为绝对路径和文件名2部分
print(os.path.split(new_path))
# path.splitext() 将一个文件路径分割成文件名和文件扩展名两个部分。它返回一个包含两个元素的元组,第一个元素是除去扩展名的文件名,第二个元素是文件扩展名。
os.path.splitext('test.png')[1]
# path.dirname() 传入一个完整的文件路径,只获取其目录的绝对路径
print(os.path.dirname(path1))
# path.basename() 传入一个完整的文件路径,只获取其文件名
print(os.path.basename(path1))
# path.relpath() 计算一个路径相对于另一个路径的相对位置。
print(os.path.relpath('/usr/local/test/main', '/usr/local/test'))
# path.getsize() 返回该文件的大小;
print(os.path.getsize(path1))
3.os模块system方法
Python中执行系统命令的一种方法,属于os模块提供的功能。它的作用相当于在终端或命令行中输入一条命令,然后执行这条命令。
【示例】
import os
command = 'ls -l' # 创建命令变量
os.system(command) # 使用os.system执行命令
'''运行结果如下
total 56
drwxr-xr-x@ 2 devops staff 64 Sep 25 16:39 __pycache__
-rw-r--r--@ 1 devops staff 290 Jul 22 11:30 itchat-test.py
-rw-r--r--@ 1 devops staff 3188 Jul 22 11:30 test.json
-rw-r--r--@ 1 devops staff 157 Jul 22 11:30 test.log
-rwxr-xr-x@ 1 devops staff 48 Sep 25 17:33 test.py
-rw-r--r--@ 1 devops staff 207 Jul 22 11:30 test.txt
-rw-r--r--@ 1 devops staff 206 Jul 22 11:30 测试追加内容.py
-rw-r--r--@ 1 devops staff 991 Jul 22 11:30 爱心跳动.py
'''
注意:
os.system()不能直接获取命令输出,只能获取命令状态,如果需要获取命令的输出建议使用os.poen()方法。
使用os.popen()方法获取命令执行结果,如下所示:
import os
data = os.poen('cat test.txt')
二、Python-sys模块
sys 模块是 Python 标准库中非常常用和重要的模块之一,它提供了与 Python 解释器交互的功能。
导入sys模块
import sys
1.sys常用方法
# sys.argv: 返回一个列表,包含了程序的命令行参数。第一个元素是程序本身的名称,之后的元素是传递给程序的参数。
print(sys.argv) # 所有参数列表
print(sys.argv[1]) # 第一个参数
print(len(sys.argv)) # 多少个参数
# sys.version: 返回当前 Python 解释器的版本信息。
print(sys.version)
# sys.platform: 返回当前运行 Python 程序的操作系统平台。
print(sys.platform)
# sys.exit(): 退出程序,可以随意传参,也可以不要参数
sys.exit(1)
# sys.stdin: 表示标准输入流,可以用于读取用户的输入。
# sys.stdout: 表示标准输出流,可以用于向控制台输出内容。
# sys.stderr: 表示标准错误流,可以用于向控制台输出错误信息。
sys.stderr.write("An error information!")