返回顶部
首页 > 资讯 > 后端开发 > Python >Python 之解析
  • 289
分享到

Python 之解析

Python 2023-01-31 00:01:57 289人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

python 之列表/字典/集合解析 通过对列表/字典/集合每一个元素应用一个函数的方法将一个列表映射到另一个列表/字典/集合 准备知识 os (operating system) 模块 os.getcwd()

python 之列表/字典/集合解析

通过对列表/字典/集合每一个元素应用一个函数的方法将一个列表映射到另一个列表/字典/集合

准备知识
    os (operating system) 模块
        os.getcwd()  获取当前工作目录
            >>> import os
            >>> print(os.getcwd())
            c:\Users\sreamy
        os.chdir()  切换工作目录(使用正斜杠)
            >>> import os
            >>> print(os.getcwd())
            c:\Users\sreamy
            >>> os.chdir('D:/')
            >>> print(os.getcwd())
            D:\
        os.stat() 获取文件元信息(文件创建时间,最后修改时间,文件大小等)
            >>> import os
            >>> print(os.getcwd())
            C:\Users\sreamy\.PyCharm2018.2\config
            >>> import glob
            >>> glob.glob('pycharm.*')
            ['pycharm.key']
            >>> metadata = os.stat('pycharm.key')   --> 获取文件元信息
            >>> metadata.st_mtime    -->   文件最后修改时间
            1554117802.3633113
            >>> import time
            >>> time.localtime(metadata.st_mtime)
            time.struct_time(tm_year=2019, tm_mon=4, tm_mday=1, tm_hour=19, tm_min=23, tm_sec=22, tm_wday=0, tm_yday=91, tm_isdst=0)
            >>> metadata.st_size     -->   文件大小(字节)
            6000

        os.path() 处理文件名和目录
        os.path.join() 从一个或多个路径中构造一个路径名
            >>> import os.path
            >>> os.path.join('c:/users/sreamy/.PyCharm2018.2/config/','pycharm.key')
            'c:/users/sreamy/.PyCharm2018.2/config/pycharm.key'   --> 路径名带/
            >>> print(os.path.join('c:/users/sreamy/.PyCharm2018.2/config/','pycharm.key'))
            c:/users/sreamy/.PyCharm2018.2/config/pycharm.key
            >>> os.path.join('c:/users/sreamy/.PyCharm2018.2/config/','pycharm.key')
            'c:/users/sreamy/.PyCharm2018.2/config/pycharm.key'

            >>> print(os.path.join('c:/users/sreamy/.PyCharm2018.2/config','pycharm.key'))
            c:/users/sreamy/.PyCharm2018.2/config\pycharm.key    --> 路径名不带/
            >>> os.path.join('c:/users/sreamy/.PyCharm2018.2/config','pycharm.key')
            'c:/users/sreamy/.PyCharm2018.2/config\\pycharm.key'

            >>> import os.path
            >>> print(os.path.expanduser('~'))
            C:\Users\sreamy           --> os.path.expanduser('~')  家目录路径
            >>> print(os.path.join(os.path.expanduser('~'),'.PyCharm2018.2','config','pycharm.key'))
            C:\Users\sreamy\.PyCharm2018.2\config\pycharm.key

        os.path.split()  拆分并返回目录名和文件名
        os.path.splitext()  拆分文件名并返回短文件名和扩展名
            >>> import os.path
            >>> pathname = 'C:/Users/sreamy/.PyCharm2018.2/config/pycharm.key'
            >>> (dirname,filename) = os.path.split(pathname)
            >>> dirname
            'C:/Users/sreamy/.PyCharm2018.2/config'
            >>> filename
            'pycharm.key'

            >>> (shortname,extension) = os.path.splitext(filename)
            >>> shortname
            'pycharm'
            >>> extension
            '.key'

        os.path.realpath() 构建文件按绝对路径
            >>> import os
            >>> print(os.getcwd())
            C:\Users\sreamy\.PyCharm2018.2\config
            >>> os.path.realpath('pycharm.key')
            'C:\\Users\\sreamy\\.PyCharm2018.2\\config\\pycharm.key'
            >>> print(os.path.realpath('pycharm.key'))
            C:\Users\sreamy\.PyCharm2018.2\config\pycharm.key

    glob  罗列目录内容|(使用通配符的方式)
            >>> import os
            >>> os.chdir('C:/Users/sreamy/.PyCharm2018.2')
            >>> import glob
            >>> glob.glob('config/*.pwd')
            ['config\\pdb.pwd']
            >>> os.chdir('C:/Users/sreamy/.PyCharm2018.2/config')
            >>> glob.glob('*port*.*')
            ['port.lock']

列表解析
    通过对列表每一个元素应用一个函数的方法将一个列表映射到另一个列表
    提供一个紧凑的方式,可使用任何的Python 表达式
            >>> a_list = [1,2,4,8]
            >>> [elem ** 2 for elem in a_list]
            [1, 4, 16, 64]
            >>> a_list
            [1, 2, 4, 8]

            >>> import os,glob
            >>> os.getcwd()
            'C:\\Users\\sreamy\\.PyCharm2018.2\\config'
            >>> os.chdir('C:/users/sreamy/.PyCharm2018.2/config/tasks')
            >>> glob.glob('*.zip')
            ['fullstack.contexts.zip', 'fullstack.tasks.zip', 'untitled.contexts.zip', 'untitled.tasks.zip']
            >>> [os.path.realpath(f) for f in glob.glob('*.zip')]
            ['C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.contexts.zip',
            'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.tasks.zip',
            'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.contexts.zip',
            'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.tasks.zip']

            >>> import os,glob
            >>> os.getcwd()
            'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks'
                 ''' tasks 目录下所有zip文件的大小和绝对路径 '''
            >>> [[os.stat(f).st_size,os.path.realpath(f)] for f in glob.glob('*.zip')]
            [[139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.contexts.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.tasks.zip'],
             [35247, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\test.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.contexts.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.tasks.zip']]
                 ''' task 目录下所有ZIP 文件的大小和绝对路径且 文件大小需要小于1000 字节 '''
            >>> [[os.stat(f).st_size,os.path.realpath(f)] for f in glob.glob('*.zip') if os.stat(f).st_size < 1000]
            [[139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.contexts.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\fullstack.tasks.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.contexts.zip'],
             [139, 'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks\\untitled.tasks.zip']]

字典解析
    和列表解析相似,返回的值是字典而已
            >>> import os,glob
            >>> os.getcwd()
            'C:\\users\\sreamy\\.PyCharm2018.2\\config\\tasks'
            >>> metadata_dict = {f:os.stat(f) for f in glob.glob('*.zip')}
            >>> type(metadata_dict)
            <class 'dict'>
            >>>
            >>> metadata_dict.keys()
            dict_keys(['fullstack.contexts.zip',
                       'fullstack.tasks.zip',
                       'test.zip',
                       'untitled.contexts.zip',
                       'untitled.tasks.zip'])
            >>> metadata_dict['fullstack.tasks.zip'].st_size
            139
    字典键 <--> 值交换
        >>> a_list = {'a':1,'b':2,'c':3}
        >>> {value:key  for key,value in a_list.items()}
        {1: 'a', 2: 'b', 3: 'c'}
        >>> a_list
        {'a': 1, 'b': 2, 'c': 3}

集合解析
    和字典解析类似,字典是键值对,集合只有值
        >>> a_set = set(range(5))
        >>> a_set
        {0, 1, 2, 3, 4}
        >>> {x ** 2 for x in a_set}
        {0, 1, 4, 9, 16}
        >>> a_set
        {0, 1, 2, 3, 4}
        >>> {x for x in a_set if x % 2 == 1}
        {1, 3}
        >>> {x for x in range(8)}
        {0, 1, 2, 3, 4, 5, 6, 7}

--结束END--

本文标题: Python 之解析

本文链接: https://lsjlt.com/news/182812.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 之解析
    Python 之列表/字典/集合解析 通过对列表/字典/集合每一个元素应用一个函数的方法将一个列表映射到另一个列表/字典/集合 准备知识 os (operating system) 模块 os.getcwd() ...
    99+
    2023-01-31
    Python
  • Python XML解析之DOM
    DOM说明: DOM:Document Object Model API DOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问。 https://docs.python.org/2/librar...
    99+
    2023-01-30
    Python XML DOM
  • Python XML解析之Element
    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.elementtree.html 菜鸟教程提供了...
    99+
    2023-01-30
    Python XML Element
  • Python源码解析之List
    目录一、列表结构体二、创建列表三、添加元素四、移除元素五、清空六、销毁一、列表结构体 创建列表C语言底层的结构体 lists = [] list.append('name') list.append('age')...
    99+
    2022-06-02
    Python List python创建列表
  • 初学python之解析式
    解析式 其目的主要用来减少编程行数,并减少栈帧从而达到代码优化的效果 In [6]: [i ** 2 for i in range(11)]Out[6]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] ...
    99+
    2023-01-31
    python
  • 【Python爬虫】数据解析之bs4解析和xpath解析
    🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶 🦋 欢迎关注🖱点赞👍收...
    99+
    2023-09-06
    python 爬虫 开发语言
  • python数据解析之XPath详解
    目录XPathXPath使用方法案例—58二手房总结XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 x...
    99+
    2024-04-02
  • Python-torch 之torch.clamp() 函数解析
    目录Python-torch torch.clamp() 函数解析1. 解析2. 对比扩展:torch.clamp()函数Python-torch torch.clamp() 函数解...
    99+
    2023-05-20
    torch.clamp() 函数 python torch.clamp() 函数 Python torch
  • python 数据分析之 HTML文件解析
    python 数据分析之 HTML文件解析 一 :Html1. Html 理解2. Html 介绍3. Html 构成4. HTML结构 介绍1> HTML文件结构A: 文档类型声明B: 根标...
    99+
    2023-09-02
    html python 数据分析
  • python爬虫教程之bs4解析和xpath解析详解
    目录bs4解析原理:如何实例化BeautifulSoup对象:用于数据解析的方法和属性:xpath解析xpath解析原理:实例化一个etree对象:xpath( ‘xpa...
    99+
    2024-04-02
  • python爬虫之bs4数据解析
    一、实现数据解析 因为正则表达式本身有难度,所以在这里为大家介绍一下 bs4 实现数据解析。除此之外还有 xpath 解析。因为 xpath 不仅可以在 python 中使用,所以 bs4 和 正则解析一样,仅仅是简...
    99+
    2022-06-02
    python bs4数据解析 python bs4 python爬虫
  • python源码剖析之PyObject详解
    目录一、Python中的对象1.1 对象机制的基石PyObject二、类型对象2.1 对象的创建2.2 对象的行为2.3 类型的类型三、Python的多态性四、引用计数五、Pytho...
    99+
    2024-04-02
  • Python爬虫实战之xpath解析
    XPath 是一门在 XML 文档中查找信息的语言,最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索。 所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提...
    99+
    2023-09-23
    python 爬虫 开发语言
  • python之解析最简单的xml
    1、person.xm文件如下 2、用xml.etree.ElementTree解析person.xml的实现 3、效果如下 4、总结 python里面的list = []相当于java里面的list,然后...
    99+
    2023-01-31
    最简单 python xml
  • Python爬虫之解析HTML页面详解
    目录用Python解析HTML页面HTML 页面的结构XPath 解析CSS 选择器解析正则表达式解析总结用Python解析HTML页面 在网络爬取的过程中,我们通常需要对所爬取的页...
    99+
    2023-05-18
    Python解析HTML Python爬虫HTML
  • Python爬虫必备之XPath解析库
    目录一、简介二、安装三、节点3.1 选取节点3.2 选取未知节点3.3 节点关系四、XPath实例一、简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历...
    99+
    2022-06-02
    XPath解析库的使用 Python Xpath
  • python解析之namedtuple函数的用法
    本篇文章给大家带来了关于Python的相关知识,主要介绍了python中namedtuple函数的用法解析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下。【相关推荐:Python3视频教程 】源码解释:de...
    99+
    2024-04-02
  • Python学习笔记之解析json的方法分析
    本文实例讲述了Python解析json的方法。分享给大家供大家参考,具体如下: 刚学习到Python中解析json的方法,觉得有必要在这里坐下笔记。 我是在python的内部环境中看的 Encoding b...
    99+
    2022-06-04
    学习笔记 方法 Python
  • Python数据分析之pandas函数详解
    目录一、apply和applymap二、排序三、处理缺失数据一、apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df...
    99+
    2024-04-02
  • Python数据分析之matplotlib绘图详解
    目录多子图散点图水平柱状图同位置柱状图多子图 figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置时...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作