python中os模块是做什么的,Python中OS
python os中的Os模块前言是操作系统的缩写;它是os python对操作系统操作接口的封装。Os模块提供了大多数操作系统的功能接口函数。在自动化测试中,经常需要找到操作文件,如配置文件(以便读取配置文件的信息)、测试报告(以便发送测试报告邮件)、测试用例的Excel文件或Yaml文件等。
函数1,当前路径和路径下的文件os.getcwd():查看当前路径。[特定于当前脚本的上一级]
Os.listdir(path):枚举路径目录中的所有文件。返回的是列表类型。
导入操作系统
OS . getcwd()# D:\ \ python test \ \ ostest
OS . list dir(OS . getcwd())#[ hello . py , test.txt] 2。绝对路径os.path.abspath(path):返回当前文件位置的绝对路径。
Os.path.realpath(path):返回当前文件位置的绝对路径。
示例1:
导入操作系统
print(os.getcwd())
print(os.path.abspath( . )))
print(os.path.abspath( . ))
Print(os.path.abspath(./.))运行结果:
示例2:
导入操作系统
print(os.getcwd())
print(OS . path . real path(_ _ file _ _))
打印(os.path.abspath(__file__))运行结果:
3.检查指定文件路径os.path.split(path)的文件夹路径部分和文件名部分:将指定文件路径分解为(文件夹路径,文件名),返回的数据类型为元组类型。
如果文件夹路径字符串的最后一个字符是\,则只有文件夹路径部分有值;
如果路径字符串中没有\则只有文件名有值。
如果路径字符串有\且不在末尾,则文件夹和文件名有值。并且返回的结果文件名不包含\。
4.路径拼接os.path.join(路径1,路径2,):合并连接的路径。如果有绝对路径,以前的路径将被删除。
OS . path . split( D:\ \ python test \ \ ostest \ \ Hello.py )#( D:\ \ python test \ \ ostest , hello . py )
os.path.split( . )) # (, .)
OS . path . split( D:\ \ python test \ \ ostest \ \ )#( D:\ \ python test \ \ ostest ,)
OS . path . split( D:\ \ python test \ \ ostest )#( D:\ \ python test , ostest )
os.path.join(D:\\pythontest , ostest )# D:\ \ python test \ \ ostest
OS . path . join( D:\ \ python test \ \ ostest , hello . py )# D:\ \ python test \ \ ostest \ \ hello . py
OS . path . join( d:\ \ Python Test \ \ b , d:\ \ Python Test \ \ a )# d:\ \ Python Test \ \ a 5、获取路径os.path.dirname(path)的文件夹路径部分:返回路径[即返回文件的路径(此路径不包含文件名)]
OS . path . dirname( D:\ \ python test \ \ ostest \ \ hello . py )# D:\ \ python test \ \ ostest
os.path.dirname( . )) #
OS . path . dirname( D:\ \ python test \ \ ostest \ \ )# D:\ \ python test \ \ ostest
OS . path . dirname( d:\ \ Python Test \ \ OS Test )# d:\ \ Python Test 6、获取路径的文件名os.path.basename(path):返回路径中的文件名。
OS . path . basename( D:\ \ python test \ \ ostest \ \ hello . py )# hello . py
os.path.basename( . )) # .
OS . path . basename( D:\ \ python test \ \ ostest \ \ )#
OS . path . basename( d:\ \ Python Test \ \ Ostest )# Ostest 7、文件查看时间os.path.getmtime(path):返回文件或文件夹的上次修改时间,从新纪元到访问时间的秒数。
Os.path.getatime(path):返回文件或文件夹的上次访问时间,从新纪元到访问时间的秒数。
Os.path.getctime(path):返回文件或文件夹的创建时间,从新纪元开始到访问的秒数。
OS . path . getmtime( D:\ \ python test \ \ ostest \ \ hello . py )# 1481695651.857048
OS . path . geta time( D:\ \ py contest \ \ ostest \ \ hello . py )# 1481687717.506715
OS . path . getctime( D:\ \ Python Test \ \ OSTest \ \ hello . py )# 1481687717.85066158,查看文件大小os.path.getsize(path):返回文件的大小;如果path参数是文件夹路径,则返回0。
OS . path . getsize( D:\ \ python test \ \ ostest \ \ hello . py )# 58L
OS . path . getsize( d:\ \ Python Test \ \ OS Test )# 0l 9,检查文件是否存在。os.path.exists(path):判断文件或文件夹是否存在,返回True或False。[文件或文件夹的名称不区分大小写]
OS . listdir(OS . getcwd())#[ hello . py , test.txt]
OS . path . exists( D:\ \ python test \ \ ostest \ \ hello . py )# True
OS . path . exists( D:\ \ python test \ \ ostest \ \ hello . py )# True
Os . path . exists( d:\ \ Python Test \ \ OSTest \ \ hello 1 . py )# false 10,os.mkdir(文件夹名),OS模块中操作目录和文件的作用:新建一个文件夹;参数是目录路径,而不是文件路径。(当父目录必须存在时,创建下一级文件夹)
Os.rmdir (folder name ):删除文件夹;该参数是目录路径,而不是文件路径。
Os.remove (file path ):删除文件;该参数是文件路径,而不是目录路径。
Os.makedirs (path and file ):递归创建一个新文件夹;您可以连续为此文件夹创建多级目录。
Os.path.isdir (path ):判断参数path是否为文件夹,返回值为布尔值;是,文件夹返回真,不是文件夹返回假。
Os.path.isfile (path ):判断参数path是否为文件,返回值为布尔值;是的,文件返回True,而不是False。
1.遍历os模块中的目录号。一种遍历目录号的功能,以深度优先的策略访问指定的目录。
OS.walk (top=path,top down=true,oneerror=none)参数top表示要遍历的目录树的路径。参数topdown默认为True,这意味着首先返回根树中的文件,然后遍历目录树的子目录。当topdown的值为False时,表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件。参数oneerror的默认值为None,表示忽略遍历文件时产生的错误;如果不为空,将提供一个自定义函数来提示错误信息,下面的遍历将抛出异常。os.walk()函数的返回值是一个生成器,每个遍历的对象返回一个三元组(root,dirs,files):这个元组有三个元素,分别代表每次遍历的路径名、目录列表和文件列表。
Root代表当前遍历的目录路径。字符串。Dirs表示根路径下的所有子目录名称;列表类型,列表中的每个元素都是字符串类型,表示子目录名称。表示filesroot路径下的所有子文件文件;列表类型,列表中的每个元素都是字符串类型,代表子文件名。示例1:当前目录结构如下:
代码1:
导入操作系统
从os.path导入连接
home_path=/home
对于os.walk(home_path)中的(根目录、目录、文件):
打印(根目录)
打印(目录)
打印(文件)
打印(= * 50)运行结果:
/首页
[根,张,李]
[test.txt , hai.mp4]
==================================================
/home/root
[]
[1.txt , 2.txt , 3.txt]
==================================================
/hoome/张
[]
[张_1.mp4 ,张_2.mp4 ,张_3.mp4]
==================================================
/首页/李
[]
[]
======================================分析:
有三行:
第一行代表当前遍历的目录,我们称之为根目录。
第二行表示根目录下的子目录列表,我们称之为dirs子目录列表。
第三行表示根目录中的子文件列表,我们称之为文件子文件列表。
注意:上面的空列表意味着在当前遍历的根目录中没有子目录或子文件。
代码:遍历主目录中所有目录和文件的绝对路径。
导入操作系统
从os.path导入连接
home_path=/home
对于os.walk(home_path)中的(根目录、目录、文件):
对于目录中的目录:
打印(join(root,dir))
对于文件中的文件:
运行打印结果(join(root,file)):
/首页
/home/root
/首页/张
/首页/李
/home/test.txt
/home/hai.mp4
/home/root/1.txt
/home/root/2.txt
/home/root/3.txt
/首页/张/张_1.mp4
/首页/张/张_2.mp4
/home/zhang/zhang_3.mp4示例2:导入OS
定义步行(路径):
如果不是os.path.exists(path):
返回-1
对于os.walk中的根目录、目录和名称(路径):
对于“名称”中的文件名:
Print (os.path.join (root,filename)) #路径和文件名连接起来形成一个完整的路径。
if __name__==__main__ :
path= C:\\用户\ \管理员\ \桌面\\2017-9-1
步行(路径)跑步成绩:
c:\用户\管理员\桌面\2017-9-1\2017-9-1.txt
c:\ Users \ Administrator \ Desktop \ 2017-9-1 \ 2017-9-1 storage . txt
c:\ Users \ Administrator \ Desktop \ 2017-9-1 \ apk . conf
c:\ users \ administrator \ desktop \ 2017-9-1 \数据采集和导入质量统计_2017-09-01.docx
c:\用户\管理员\桌面\2017-9-1\test1\2017-9-1.txt
c:\ users \ administrator \ desktop \ 2017-9-1 \ test 2 \ 2017-9-1 . txt 12、一些性能参数不同操作系统中文件和路径的一组性能参数也是在os模块中定义的。如下所示:
os.sep # \\
os.extsep # .
OS . path sep # ;
Os.linesep # \r\n 比如在自动化测试的过程中,经常需要发送邮件将最新的测试报告文档发送给相关人员查看,所以需要查找最新文档的功能。
示例:在文件夹中查找最新的文件。
代码如下:
导入操作系统
定义新文件(测试目录):
#枚举test_dir目录中的所有文件(名称),结果以列表形式返回。
lists=os.listdir(test_dir)
#sort按照key的关键字升序排序,lambda的参数fn是lists list的元素,它获取文件的最后修改时间,所以按照文件时间降序排序。
#最后,列表元素根据文件修改时间从小到大排序。
lists . sort(key=lambda fn:OS . path . getmtime(test _ dir \ \ fn))
#获取最新文件的绝对路径,列表中的最后一个值,文件夹文件名
file_path=os.path.join(测试目录,列表[-1])
返回文件路径
#返回D:\pythontest\ostest下的最新文件
print _ file的运行结果( d: \ \系统文件\ \工作区\ \ selenium \ \ email 126 pro \ \ email 126 \ \ report ):
Summary # python - function os.sep:主要用作系统路径中的分隔符
# Windows系统是" \ ",Ubuntu等Linux系统是"/",苹果Mac OS系统是":"
#常见操作系统模块命令:
# 1,os.name——name顾名思义就是“名称”。这里的名称是指操作系统的名称,主要用来判断当前使用的平台,给出操作系统的名称,比如Windows返回‘nt’;Linux返回“posix”。请注意,该命令没有括号。
# 2.os.getcwd()——的全名应该是 get current work directory 以获取当前工作目录。
# 3.OS.listdir (path) 3354列出了路径目录中的所有文件和目录名。可以省略Path参数。
# 4,os.remove (path) 3354删除path指定的文件。不能省略此参数。
# 5,os.rmdir (path) 3354删除path指定的目录。不能省略此参数。
# 6,os.mkdir (path) 3354创建path指定的目录。不能省略此参数。
# 7、os.unlink()方法用于删除文件,如果文件是目录则返回错误。
# os.remove() #删除文件
# os.rename() #重命名文件
# os.walk() #生成目录树下的所有文件名
# os.chdir() #更改目录
# os.mkdir/makedirs() #创建目录/多级目录
# os.rmdir/removedirs #删除目录/多级目录
# os.listdir() #列出指定目录的文件。
# os.getcwd() #获取当前工作目录
# os.chmod() #更改目录权限
# os.path.basename() #删除目录路径并返回文件名。
# os.path.dirname() #删除文件名并返回目录路径。
# os.path.join() #将分开的部分组合成一个路径名。
# OS . path . split()# Returns(dirname(),basename())元组
# os.path.splitext() #返回文件名元组,扩展名)
# OS . path . get time \ ctime \ mtime #分别返回上次访问、创建和修改时间。
# os.path.getsize() #返回文件大小
# os.path.exists() #存在吗?
# os.path.isabs() #是绝对路径吗?
# os.path.isdir() #是目录吗?
# os.path.isfile() #是文件吗?
# os.system(command )将执行括号中的命令。如果命令成功执行,该语句将返回0;否则,它将返回1。扩展:os.listdir()和os.walk()是获取文件路径与一个文件目录中所有子目录和文件的区别的两种方法。示例1:当一个目录中只有文件时,可以使用os.listdir()函数。test_file文件夹包含三个文件。
测试文件:
test1.txt
test2.txt
Test3.txt获取该目录中每个文件的绝对路径:
导入操作系统
path=r c:\ Users \ XXN \ Desktop \ test _ file
对于os.listdir中的每个文件(路径):
print(os.path.join(path,each_file))运行结果:
c:\ Users \ XXN \ Desktop \ test _ file \ test1。文本文件(textfile)
c:\ Users \ XXN \ Desktop \ test _ file \ test 2。文本文件(textfile)
c:\ Users \ XXN \ Desktop \ test _ file \ test3。文本文件(textfile)实例2:当一个目录下面既有文件又有目录(文件夹),可使用os.walk()函数读取里面所有文件测试文件中既包含文件也包含文件夹:
测试文件:
文件1:
test1.txt
test2.txt
test3.txt
文件2:
test1.txt
test2.txt
test3.txt
test1.txt
test2.txt
test3.txt代码如下:
导入操作系统
path=r c:\ Users \ XXN \ Desktop \ test _ file
对于os.walk中的父目录名、文件名(路径):
打印(父项、目录名、文件名)运行结果:
c:\ Users \ XXN \ Desktop \ test _ file[ file 1 , file2] [test1.txt , test2.txt , test3.txt]
c:\ Users \ XXN \ Desktop \ test _ file \ file 1[][ test1。 txt , test2.txt , test3.txt]
c:\ Users \ XXN \ Desktop \ test _ file \ file 2[][ test1。 txt , test2.txt , test3.txt]解析:
家长:列出了目录路径下面所有存在的目录的名称目录名:文件夹名文件名:列出了目录路径下面所有文件的名称获得给定路径下所有的文件路径:
导入操作系统
path=r c:\ Users \ XXN \ Desktop \ test _ file
对于os.walk中的父目录名、文件名(路径):
对于文件名中的文件名:
print(os.path.join(父级,文件名))
获取每个文件的绝对路径去期待陌生,去拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。