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']
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值