发布于 2015-10-25 21:27:24 | 144 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Python3 Cookbook中文版,程序狗速度看过来!

Python编程语言

Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。


本文给大家介绍的是Python中的数据解析的集中方式,包括列表解析、字典解析、集合解析,并附上相关示例,有需要的小伙伴可以参考下。

Import os; -- Python自带
print(os.getcwd()) -- 获得当前工作目录
os.chdir('/Users/longlong/Documents') -- 转换到/Users/longlong/Documents目录
os.path.join(parm1, parm2,...) -- 从一个或多个路径片段中构造一个路径名。
os.path.expanduser() -- 用来将包含~符号的路径扩展为完整的路径

代码如下:

>>> pathname = '/Users/pilgrim/diveintopython3/examples/humansize.py'
>>> os.path.split(pathname)  --('/Users/pilgrim/diveintopython3/examples', 'humansize.py')罗列目录内容构造绝对路径

代码如下:

>>> import os
>>> print(os.getcwd())
/Users/longlong/Documents
>>> os.chdir("./python/")
>>> os.getcwd()
'/Users/longlong/Documents/python'
>>> print(os.path.realpath('whileloop.py')
      )
/Users/longlong/Documents/python/whileloop.py
>>> print(os.path.realpath("whileloop.py"))
/Users/longlong/Documents/python/whileloop.py
>>>

列表解析

代码如下:

>>> [os.path.realpath(f) for f in glob.glob("*.py")]
['/Users/longlong/Documents/python/indices_over_two_objects.py', '/Users/longlong/Documents/python/loops_over_indices.py', '/Users/longlong/Documents/python/while_loops.py']<br>
>>> [f for f in glob.glob("*.py") if os.stat(f).st_size > 700]
['indices_over_two_objects.py', 'while_loops.py']
1
 
 

字典解析

>>> metadat_dict = { f:os.stat(f) for f in glob.glob('*.py')}
 
>>> type(metadat_dict)
<class 'dict'>
 
>>> list(metadat_dict.keys())
['indices_over_two_objects.py', 'while_loops.py', 'loops_over_indices.py']
 
>>> metadat_dict['indices_over_two_objects.py'].st_size
871

>>> list(metadat_dict.keys())
['indices_over_two_objects.py', 'while_loops.py', 'loops_over_indices.py']
 
>>> a_dict = {'a':1, 'b':2,'c':3}
>>> {value:key for key,value in a_dict.items()}
{1: 'a', 2: 'b', 3: 'c'}
 

集合解析

>>> a_set = set(range(10))
>>> a_set
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
 
>>> {x**2 for x in a_set}
{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
 
>>> {x for x in a_set if x%2 == 0 }
{0, 8, 2, 4, 6}
 
>>> {2**x for x in range(10)}
{32, 1, 2, 64, 4, 128, 256, 512, 8, 16}



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务