Dive in Python学习笔记九

找到路径
fullpath.py
-----------------------------------------------------------------
import sys, os
print('sys.argv[0] =', sys.argv[0])
pathname = os.path.dirname(sys.argv[0])
print('path =', pathname)
print('full path =', os.path.abspath(pathname))
运行结果:
sys.argv[0] = E:/Downloads/Python/diveintopythonzh-cn-5.4b/py3/fullpath.py
path = E:/Downloads/Python/diveintopythonzh-cn-5.4b/py3
full path = E:\Downloads\Python\diveintopythonzh-cn-5.4b\py3
说明:
1. sys.argv[0]总是运行脚本的完整路径名
2. os.path.dirname 接受作为字符串传来的文件名并返回路径部分。
3. os.path.abspath 接受的路径名可以是部分的甚至是完全空白,但总能返回完整有效的路径名。

os.path.abspath进一步说明
1. 用空字符串调用 os.path.abspath 将返回当前的工作路径。
2. 以完整的路径名调用 os.path.abspath 则简单地将其直接返回。
3. 传递给 os.path.abspath 的路径名和文件名可以不存在。
4. os.path.abspath跨平台。

os其他函数
1. os.getcwd() 返回当前的工作路径。
2. os.path.normpath 格式化路径名,不返回完整路径。

重识列表过滤
列表过滤还可以通过Python内建 filter类完成,它接受两个参数:一个函数和一个列表,返回一个filter对象。作为第一个参数传递给 filter 的函数本身应接受一个参数,filter返回的filter对象将会包含被传入列表参数传递给 filter 所有可以令函数返回真 (true)的元素。如:
>>> def odd(n):
    return n % 2
>>> li = [1,2,3,4,5,9,10,256,-3]
>>> f = filter(odd, li)
>>>type(f)

>>> for e in f:
print(e,end=' ')
1 3 5 9 -3

重识列表映射
列表映射还可以通过Python内建map类完成,它接受一个函数和一个列表作为参数,并对列表中的每个元素依次调用函数返回一个map对象。
>>> def double(n):
    return n*2
>>> li = [1,2,4,5]
>>> m = map(double, li)
>>> type(m)

>>> for e in m:
    print(e, end=' ')    
2 4 8 10

动态导入模块
Python内建的函数__import__可以接受一个字符串参数,实现import语句的功能。因此通过它可以实现模块的动态导入。如:
>>> __import__('sys')

>>> sys.version
'3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]'

通过列表映射可以导入模块列表
>>> moduleNames = ['sys', 'os', 're', 'unittest']
>>> moduleNames
['sys', 'os', 're', 'unittest']
>>> map(__import__, moduleNames)

>>> sys.version
'3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]'
说明:通过map映射,每一个模块名都被用来调用__import__函数,因此都被依次导入。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值