demo :
file_pair = dict(zip(imgf_list,target_img_list)
对这个字典中嵌套的zip函数 不是很了解 特进行了相关搜索
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/")