python --------- 知识小点随记

demo :

项目中遇到

file_pair = dict(zip(imgf_list,target_img_list)
对这个字典中嵌套的zip函数 不是很了解 特进行了相关搜索

zip 函数 接收任意多个(包括0个和1个)序列作为参数,返回一个tuple 列表

dict 操作

1 使用zip创建字典 key = ‘abcde‘

value = range(1, 6)

dict(zip(key, value))

2、使用items()来遍历字典

for key,value in d.items():

3.使用get, pop来获取/删除key

首先,dict[key] 与 delete dict[key]也可以获取/删除key。但是key不存在时,会引发 KeyError 异常。为了避免引发异常可以使用带defaut参数的get和pop函数
get(key[, default])
如果key在字典中,返回对应的value, 否则返回default。所以从来不会引发异常。
pop(key[, default])
如果default未设置,则如果key不在字典中,删除key将引发异常。使用时加上default。
4、dict(dict1, **dict2)合并两个字典
合并两个字典可以先把两个字典分成key-value对,再连接两个key-value对,生成新的字典。即 dict(dict1.items()+dict2.items()) ,不过效率有些低。
使用效率更高的 dict(dict1, **dict2) 连接两个字典。
In [29]: dict1
Out[29]: {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}

In [30]: dict2
Out[30]: {‘d‘: 4, ‘e‘: 5, ‘f‘: 6}

In [31]: dict(dict1, **dict2)
Out[31]: {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4, ‘e‘: 5, ‘f‘: 6}
$ python -m timeit -s ‘dict1=dict2=dict(a=1,b=2)‘ ‘dict3=dict(dict1,**dict2)‘

1000000 loops, best of 3: 0.573 usec per loop
$ python -m timeit -s ‘dict1=dict2=dict(a=1,b=2)‘ ‘dict3=dict(dict1.items()+dict2.items())‘
100000 loops, best of 3: 2.21 usec per loop

例子:

zip(d.values(),d.keys())
[(1, ‘a’), (3, ‘c’), (2, ‘b’), (4, ‘d’)]

dict(zip(d.values(),d.keys()))
{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’}
结合使用zip( )和dict( )可以很方便的反转字典(交换键值对的位置)

os.path.isdir :os.listdir()用于返回一个由文件名和目录名组成的列表, 需要注意的是它接收的参数需要是一个绝对的路径

import os
path = '/home/python/Desktop/'
for i in os.listdir(path):
    print(i)

os.path.isfile()用于判断对象是否为一个文件
例如:

已知路径path = /home/python/Desktop/

请输出该目录下包含的文件名称

import os
for i in os.listdir(path):
    if os.path.isfile(i):
        print(i)

os.path.isdir()用于判断对象是否为一个目录
例如:

已知路径path = /home/python/Desktop/

请输出该目录下包含的目录名称

import os
for i in os.listdir(path):
    if os.path.isdir(i):
        print(i)

os.walk这个某块是遍历一个目录常用的模块,它返回一个包含3个元素的元祖:

import os 

def visitDir2(path):
    if not os.path.isdir(path):
        print('Error:"',path,'" is not a directory or does not exist.')
        return
    list_dirs = os.walk(path)                #os.walk返回一个元组,包括3个元素:
                                                           #所有路径名、所有目录列表与文件列表
    for root, dirs, files in list_dirs:       #遍历该元组的目录和文件信息
        for d in dirs: 
            print(os.path.join(root, d))     #获取完整路径
        for f in files: 
            print(os.path.join(root, f))     #获取文件绝对路径

visitDir2('h:\\music')

python shutil.move 移动文件
shutil可以实现文件的复制,移动

#复制文件:
shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") #oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
 
#复制文件夹:
shutil.copytree("olddir","newdir") #olddir和newdir都只能是目录,且newdir必须不存在
 
#重命名文件(目录)
os.rename("oldname","newname") #文件或目录都是使用这条命令
 
#移动文件(目录)
shutil.move("oldpos","newpos") 
shutil.move("D:/知乎日报/latest/一张优惠券,换你的通讯录信息,你愿意吗?.pdf", "D:/知乎日报/past/")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值