python------知識小点随記

6853 ワード

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(dict 1、**dict 2)2つの辞書をマージします.2つの辞書をkey-valueペアに分割し、2つのkey-valueペアを接続して新しい辞書を生成できます.すなわちdict(dict 1.items()+dict 2.items()あ、でも効率はちょっと低いです.もっと効率のいいdict(dict 1、**dict 2)を使って2つの辞書を接続します.In[29]:dict 1 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/")