python标准库之os模块
引用:python之os模块
查看当前路径
# 获取当前路径
>>> os.getcwd()
'C:\\Users\\Administrator'
当前路径下所有文件
# 获取当前路径下所有文件夹及文件,返回列表
>>> os.listdir()
['.android', '.IntelliJIdea2019.3', '.jetbrains', '.PyCharm2019.3']
查看绝对路径
>>> os.path.abspath('.') # 当前路径
'C:\\Users\\Administrator'
>>> os.path.abspath('..') # 上级路径
'C:\\Users'
>>> os.path.abspath('../..')
'C:\\'
>>> os.path.abspath('.android')
'C:\\Users\\Administrator\\.android'
查看路径的文件夹部分和文件名部分
切割文件路径
os.path.split(path),将路径分解为(文件夹,文件名),返回的是元组类型
# 若路径字符串最后一个字符是\,则只有文件夹部分有值
>>> os.path.split('C:\\Users\\Administrator\\')
('C:\\Users\\Administrator', '')
# 若路径字符串中均无\,则只有文件名部分有值
>>> os.path.split('Administrator')
('', 'Administrator')
# 若路径字符串有\,且不在最后,则文件夹和文件名均有值
>>> os.path.split('C:\\Users\\Administrator\\.android')
('C:\\Users\\Administrator', '.android')
获取文件夹
os.path.dirname(path),返回path中的文件夹部分,结果不包含'\'
>>> os.path.dirname('C:\\Users\\Administrator\\.android')
'C:\\Users\\Administrator'
>>> os.path.dirname('C:\\Users\\Administrator\\')
'C:\\Users\\Administrator'
获取文件名
os.path.basename(path),返回path中的文件名
>>> os.path.basename('C:\\Users\\Administrator\\.android')
'.android'
>>> os.path.basename('C:\\Users\\Administrator\\')
''
合并文件夹与文件名
os.path.join(path1,path2,…),将path进行组合,若其中有绝对路径,则之前的path将被删除
>>> os.path.join('C:\\Users\\Administrator\\','test.py')
'C:\\Users\\Administrator\\test.py'
>>> os.path.join('C:\\Users\\Administrator','test.py')
'C:\\Users\\Administrator\\test.py'
>>> os.path.join('C:\\Users\\Administrator\\test.py','C:\\Users\\Administrator')
'C:\\Users\\Administrator'
查看文件时间
最后修改时间
os.path.getmtime(path):文件或文件夹的最后修改时间,从新纪元到访问时的秒数。
>>> os.path.getmtime('.')
1585105227.2738297
>>> os.path.getmtime(os.getcwd())
1585105227.2738297
最后访问时间
os.path.getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数。
>>> os.path.getatime(os.getcwd())
1586398405.8150487
最后访问时间
os.path.getctime(path):文件或文件夹的创建时间,从新纪元到访问时的秒数。
>>> os.path.getctime(os.getcwd())
1583671535.8481915
查看文件大小
os.path.getsize(path):文件或文件夹的大小,若是文件夹返回0。
>>> os.path.getsize(os.getcwd())
12288
>>> os.path.getsize('C:\\Users\\Administrator\\.android')
0
文件判断
文件或文件夹是否存在
os.path.exists(path):文件或文件夹是否存在,返回True 或 False
>>> os.path.exists('C:\\Users\\Administrator\\.android')
True
# os.path操作是忽略大小写
>>> os.path.exists('C:\\Users\\Administrator\\.Android')
True
>>> os.path.exists('C:\\Users\\Administrator\\.android1')
False
是否为绝对路径
os.path.isabs(path):判断是否为绝对路径
>>> os.path.isabs('.')
False
是否为文件
os.path.isfile(path):判断路径是否为文件
False
>>> os.path.isfile('.')
是否为目录
os.path.isdir(path):判断路径是否为目录
>>> os.path.isdir('.')
True
创建删除文件
创建文件夹
# 创建文件夹(文件夹名存在则报错)
>>> os.mkdir('a')
>>> os.mkdir('D:\\test\\a\\b') # 如果'D:\\test\\a'不存在则报错
>>> os.makedirs('D:\\test\\a\\b')
删除文件夹
# 删除文件夹(文件夹不为空报错)
>>> os.rmdir('D:\\test\\a\\b') # 只删除文件b
>>> os.removedirs('D:\\test\\a\\b') # 删除文件a 文件夹b
删除文件
# 删除文件
>>> os.remove('D:\\test\\test1.txt')
一些表现形式参数
os中定义了一组文件、路径在不同操作系统中的表现形式参数
>>> os.sep
'\\'
>>> os.extsep
'.'
>>> os.pathsep
';'
>>> os.linesep
'\r\n'
环境参数(os.environ)
# 查看所有系统参数:返回字典类型数据格式
>>> os.environ.itemms()
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', ......'USERPROFILE': 'C:\\Users\\Administrator', 'WINDIR': 'C:\\WINDOWS'})
# 设置自定义参数
>> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
# 获取自定义参数
>> s.environ.get('DJANGO_SETTINGS_MODULE')
'mysite.settings'
不知道你有没有用过django框架(Django 教程),django启动文件manage.py中就有用到这个环境参数设置。
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
把django的配置文件名
实例说明
在自动化测试过程中,常常需要发送邮件,将最新的测试报告文档发送给相关人员查看,这是就需要查找最新文件的功能。
举例:查找文件夹下最新的文件
>>> os.getcwd()
'D:\\test'
>>> test_dir=os.getcwd()
>>> filelist = os.listdir()
>>> filelist.sort(key=lambda f:os.path.getmtime(os.path.join(test_dir,f))) # 按修改时间排序
>>> filelist
['test1.txt', 'tets3.txt', 'test2.txt']
>>> filelist[-1] # 获取列表中最后一个文件名
['test2.txt']