快捷搜索:  汽车  科技

python的os模块有什么用?Python3中常用模块-os模块

python的os模块有什么用?Python3中常用模块-os模块参数说明:os.popen(cmd mode='r' buffering=-1) # encoding=gbk import os # 执行命令,能在命令行中执行的命令 # 阻塞的方式执行,能获取命令执行的退出状态,不能获取命令执行过程中的输出。 print(os.system('ipconfig')) # print(os.system('ping blog.csdn.net')) # print(os.system('msconfig')) # 打开系统配置,程序会一直卡在这里,直到关闭配置界面, # 运行程序,不会阻塞 print(os.system('calc')) # 打开计算器 print(os.system('start calc')) print(os.syst

os模块是python标准库中与操作系统交互及访问操作系统相关功能的模块。

1:获取模块帮助文档

import os # 1:查看os模块的帮助 print(os.__doc__) # 2:列出所有的属性及方法 print(dir(os)) # 3:一行一个列出 for item in dir(os): print(item ) # 4:查看某个函数 print(help(os.system))2:常用os模块工具 2.1:系统相关

print("1:" os.name) print("2:" os.sep) print("3:" os.pathsep) print("4:" os.extsep) print("5:" os.linesep) print("6:" os.devnull) print("7:" os.defpath) """ 输出结果(win10操作系统): 1: nt 2: \ 3: ; 4: . 5: 6: nul 7: .;C:\bin """2.2:文件和目录相关

2.2.1:文件和目录管理工具

# encoding=gbk import os print('--1--' '*'*50) print(os.getcwd()) # 获取当前工作目录 print(os.chdir(r"C:\Program Files (x86)")) # 改变当前工作目录,os.chdir的返回值为None print(os.getcwd()) # 输出是os.chdir 改变的工作目录 print(os.chdir(r"..")) # 改变当前工作目录为上级目录 print(os.getcwd()) # print(os.curdir) # 输出 . print(os.pardir) # 输出 .. print('--2--' '*'*50) print(os.chdir(r"D:\python\test")) # 改变当前目录为 print(os.getcwd()) # print(os.mkdir(r'dir5')) # 在当前工作目录下创建目录,不能同时创建多级目录,返回值为None;当目录存在时会抛出异常:FileexistsError # print(os.rmdir('dir3')) # 在当前工作目录下删除指定目录,也可以指定绝对目录,返回值为None;当目录不存在时 抛出异常:FileNotFoundError print(os.listdir(r"D:\python\test")) # 列出当前目录下的所有目录及文件,不包含其子目录下的目录,文件; # print(os.makedirs('dir6/dir8')) # 创建多级目录,当最后一级目录存在时,抛出异常:FileExistsError # print(os.removedirs('dir6/dir5')) # 删除多级目录:最后一级目录不存在时,抛出FileNotFoundError;最后一级存在 首先删除最后一级目录,如上一级下没有子目录,就把上一级删除,否则不删除 print(os.remove('filename')) # 删除文件,文件不存在抛出异常:FileNotFoundError print(os.rename("ixusy88-1.txt" "ixusy88-new.txt")) # 修改文件名;FileNotFoundError print(os.stat(r"D:\python\test")) # 查看目录的信息:大小,创建时间,修改时间等等。 print(os.stat(r"D:\python\test\ixusy88.txt")) # 查看文件的信息:大小,创建时间,修改时间等等。 print(os.getpid()) # 获取进程id

2.2.2:路径名工具

# encoding=gbk import os print(os.chdir(r"D:\python\test")) # 改变当前目录为 D:\python\test print(os.getcwd()) print(os.path.exists(r"D:\python\test1")) # 判断目录是否存在 print(os.path.exists(r"D:\python\test1\ixusy88.txt")) # 判断文件是否存在 print(os.path.isdir(r"D:\python\test\dir1")) # 判断目录是否存在:目录存在返回True 其他情况返回False print(os.path.isfile(r"D:\python\test\dir1")) # 判断文件是否存在:文件存在返回True 其他情况返回False print(os.path.abspath(r"dir1")) # 返回dir1的绝对路径 print(os.path.isabs(r"dir1")) # 判断是否是绝对路径 print(os.path.isabs(r"D:\python\test\dir1")) # 判断是否是绝对路径 # 以路径中最后一个os.sep对路径进行分割,如下: print(os.path.split(r"D:\python\test\dir1\ddd.txt")) # 输出 :('D:\\python\\test\\dir1' 'ddd.txt') print(os.path.split(r"D:\python\test\dir1\\")) # 输出:('D:\\python\\test\\dir1' '') print(os.path.split(r"D:\python\test\dir1")) # 输出:('D:\\pytho n\\test' 'dir1') # print(os.path.dirname(r"D:\python\test\dir1\ddd.txt")) # 输出 : D:\python\test\dir1 print(os.path.dirname(r"D:\python\test\dir1\\")) # 输出:D:\python\test\dir1 print(os.path.dirname(r"D:\python\test\dir1")) # 输出: D:\python\test print(os.path.basename(r"D:\python\test\dir1\ddd.txt")) # 输出 :ddd.txt print(os.path.basename(r"D:\python\test\dir1\\")) # 输出: 空的 print(os.path.basename(r"D:\python\test\dir1")) # 输出: dir1 ret = os.path.join('dir11' 'dir12' 'dir113') print(ret) # 输出 dir11\dir12\dir113 ret = os.path.join(os.getcwd() 'dir11' 'dir12' 'dir113') print(ret) # 输出 D:\python\test\dir11\dir12\dir113 print(os.path.getatime(os.getcwd())) print(os.path.getmtime(os.getcwd())) print(os.path.getsize(os.getcwd())) print('*' * 60) # os.walk 递归列出目录下的所有目录,文件,及子目录下的目录文件。 for item in os.walk(os.getcwd()): print(item)2.3:运行程序

2.3.1:os.system

# encoding=gbk import os # 执行命令,能在命令行中执行的命令 # 阻塞的方式执行,能获取命令执行的退出状态,不能获取命令执行过程中的输出。 print(os.system('ipconfig')) # print(os.system('ping blog.csdn.net')) # print(os.system('msconfig')) # 打开系统配置,程序会一直卡在这里,直到关闭配置界面, # 运行程序,不会阻塞 print(os.system('calc')) # 打开计算器 print(os.system('start calc')) print(os.system('start C:\FeiQ.exe')) # 打开文件,会阻塞 print(os.system('wifi.txt')) print(os.system('wifi2.txt')) """ # 测试os.system的返回值: 在同级目录下创建:test.py文件 import sys print('in test ') sys.exit(3) """ print(os.system('python test.py')) # 此处的输出为 3,即os.system的返回值为所执行命令的退出(终止)状态码

2.3.2:os.popen

os.popen会打开一个管道。 其执行是非阻塞的,其返回一个可迭代对象,可以像读取文件一样,读取命令的输出结果。

语法格式:

os.popen(cmd mode='r' buffering=-1)

参数说明:

command --- 调用的命令;

mode --- 模式权限可以是 'r'(默认) 或 'w';

bufsize -- 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位);负的bufsize意味着使用系统的默认值。

# encoding=gbk import os cmd = 'ipconfig' ret = os.popen(cmd) # 这个迭代器,只能迭代一遍: # 1:读取所有行,返回一个列表 # print(ret.readlines()) # 2:读取所有行,返回一个字符串;read会阻塞 # str = ret.read() # print(type(str) str) # 3:迭代一次读取一行 # for item in ret: # print(item) # print('*'*10) # 上面的1:,2:,3:只会有一个输出 # 最后关闭 ret.close() print('='*30) # 也可以使用 with来执行 with os.popen(cmd) as p: for item in p: print(item) print('*'*20)

python的os模块有什么用?Python3中常用模块-os模块(1)

猜您喜欢: