python模組引入即一些方法(未完待續……)
一、公共方法:
1.檢視記憶體地址: id(param) ,如,e.g.1 l1 = [1,1,2,3,4,5,6,8] print('print l1 memory address:',id(l1))#檢視記憶體地址 l2 = [1,1,2,3,4,5,6,8] print('print l2 memory address:',id(l2))#檢視記憶體地址 2. |
e.g.1
二、模組
1.什麼是模組 模組就是一個包含Python程式碼的文字檔案,對模組的主要需求就是要求檔名以.py結尾 2. copy 模組 e.g.1 1)匯入模組: import copy 方法:copy.deepcopy(param) #深copy 概念補充:淺copy,如:l1 = [1,2,3] 那麼l2=l1 即屬於淺copy即,l1和l2指向同一塊記憶體空間 練習: l1 = [1,1,2,3,4,5,6,8] l2 = copy.deepcopy(l1) print(l2) 3.string 模組 1)匯入模組:import string 2)方法(e.g.2): a.string.ascii_lowercase #生成小寫字母 e.string.punctuation #生成特殊字元 ps.此處的字元都是英文半形符號 4.time 模組 1)匯入模組:import time 2)方法(e.g.3) a.time.sleep(seconds) # 延遲多少秒執行程式 如,time.sleep(60) 即暫停60秒,之後再執行程式,seconds可以為float型別 b.time.date.today() #獲取當前日期 c.time.time() # 返回從元年計時開始到現在的秒數,Return the current time in seconds since the Epoch 5.os模組 1)概念;os是一個內建模組 2)方法 1> 獲取/更改檔案路徑或目錄 print('獲取父目錄:',os.path.dirname(__file__) ) # 獲取父目錄 說明: os.path.dirname(__file__) #獲取父目錄,__file__代表獲取當前檔案目錄 獲取到的路徑與當前系統路徑分隔符不一致 ,需要使用絕對路徑轉一下 print( os.path.abspath( __file__ )) # 獲取絕對路徑 說明: os.path.abspath( __file__ ) # 獲取當前檔案的絕對路徑 可以把__file__換成其他的路徑 print('獲取當前工作目錄:',os.getcwd() ) # 取當前工作目錄 print('獲取當前工作目錄上級目錄:',os.path.dirname(os.getcwd())) print('更改當前工作目錄,到指定的目錄,返回值為None,可以通過os.getcwd進行驗證:',os.chdir("F:\lp_test\\besttest\\auto_test\homework\syz_automatic_code\day7")) # 更改當前目錄 os.curdir #獲取當前目錄的符號 print('獲取到當前目錄的符號 >> "." >> : ',os.curdir) #打印出來是個. print('獲取當前目錄的絕對路徑:',os.path.abspath(os.curdir)) # 當前目錄 print('獲取父目錄:',os.pardir ) # 父目錄 print('獲取當前目錄父目錄的絕對路徑:',os.path.abspath(os.pardir)) #os.walk 獲取當前目錄的路徑(絕對路徑),目錄名,檔名 目錄樹生成器,檔案數樹的每級目錄都生成一個三元元組,元組元素為目錄路徑,目錄名列表,檔名列表 # for data in os.walk('F:\lp_test\\besttest\\auto_test\homework\syz_automatic_code\day6'):# print(data) # for abs_path,dirs,file in os.walk('F:\lp_test\\besttest\\auto_test\homework\syz_automatic_code\day6'): # print(abs_path,dirs,file) 2>獲取系統路徑分隔符 #print('當前系統分隔符:',os.sep) # 當前作業系統的路徑分隔符 #print('獲取當前系統換行符:',os.linesep) # 當前作業系統的換行符 window \r\n 3>更改檔案/目錄訪問許可權 os.chmod( "/usr/local", 7 ) # 給檔案/目錄加許可權 適用於linux系統 4>建立目錄 print( os.makedirs( "test2/test3" ) ) # 遞迴建立資料夾,父目錄不存在時建立父目錄 #已經存在FileExistsError: [WinError 183] 當檔案已存在時,無法建立該檔案。: 'test2/test3' print( os.mkdir( "test2/test6" ) ) # 建立資料夾 #建立多層目錄,如果父目錄不存在FileNotFoundError: [WinError 3] 系統找不到指定的路徑。: 'test4/test5',目錄以存在也會報錯 5>刪除目錄 print( os.removedirs( "test2/test6" ) ) # 遞迴刪除空目錄,只能刪除空目錄,如果刪除的目錄不存在會報錯,FileNotFoundError: [WinError 2] 系統找不到指定的檔案。: 'test2/test6' print( os.rmdir( "test2" ) ) # 刪除指定的資料夾 只能刪除空的目錄OSError: [WinError 145] 目錄不是空的。: 'test2' print( os.remove( "test2/test5/123" ) ) # 刪除檔案 只能刪除檔案,不能刪除資料夾 PermissionError: [WinError 5] 拒絕訪問。: 'test2',如果刪除的檔案不存在會報異常,FileNotFoundError: [WinError 2] 系統找不到指定的檔案。: 'test2/test5/123' 6>獲取目錄的檔名及目錄名 print('將當前路徑中的檔案及資料夾放在一個list中:',os.listdir()) # 列出當前目錄下所有的檔案及資料夾放在一個list中 print('當前目錄的父目錄:%s,包含的檔案及資料夾list:%s'%(os.path.abspath(os.pardir),os.listdir(os.path.abspath(os.pardir)))) # 列出當前目錄下所有的檔案及資料夾放在一個list中 os.scandir() """ scandir(path='.') -> iterator of DirEntry objects for given path """ 為給定的路徑生成一個DirEntry物件的迭代器 print(':',os.scandir(os.path.abspath(os.path.dirname(__file__)))) 返回的是一個一個Direntry的迭代器 7>重新命名 os.rename( "liangpan.py", "lprename.py" ) # 重新命名,將liangpan.py檔名重新命名為lprename.py,如果檔名找不到會報異常,FileNotFoundError: [WinError 2] 系統找不到指定的檔案。: 'liangpan.py' -> 'lprename.py' 8>獲取檔案資訊 print('獲取檔案資訊:',os.stat( "lprename.py" ) ) # 獲取檔案資訊 # print( os.path.getatime( "len_os.py" ) ) # 輸出最近訪問時間 os.path.getsize() #獲取檔案大小,常用 size = os.path.getsize('day6_2_new.py') #獲取檔案大小單位B print('檔案大小:%s bytes'%size) 9>獲取系統分隔符 print('當前系統分隔符:',os.sep) # 當前作業系統的路徑分隔符 print('當前系統的環境變數:',os.environ ) # 當前系統的環境變數,返回的是一個元組,元組中是一個字典 10>判斷 os.path.isfile(path) #傳入的路徑是否為一個常規的檔案,常用 print( os.path.isfile( "/usr/local" ) ) # 判斷是否是一個檔案 |
def deepcopy(x, memo=None, _nil=[]): """Deep copy operation on arbitrary Python objects. See the module's __doc__ string for more info. """ if memo is None: memo = {} d = id(x) y = memo.get(d, _nil) if y is not _nil: return y cls = type(x) copier = _deepcopy_dispatch.get(cls) if copier: y = copier(x, memo) else: try: issc = issubclass(cls, type) except TypeError: # cls is not a class (old Boost; see SF #502085) issc = 0 if issc: y = _deepcopy_atomic(x, memo) else: copier = getattr(x, "__deepcopy__", None) if copier: y = copier(memo) else: reductor = dispatch_table.get(cls) if reductor: rv = reductor(x) else: reductor = getattr(x, "__reduce_ex__", None) if reductor: rv = reductor(4) else: reductor = getattr(x, "__reduce__", None) if reductor: rv = reductor() else: raise Error( "un(deep)copyable object of type %s" % cls) if isinstance(rv, str): y = x else: y = _reconstruct(x, memo, *rv) # If is its own copy, don't memoize. if y is not x: memo[d] = y _keep_alive(x, memo) # Make sure x lives at least as long as d return y _deepcopy_dispatch = d = {} |
import string print('lowercase:',string.ascii_lowercase) #列印小寫字母 print('uppercase:',string.ascii_uppercase) #列印大寫字母 print('digits:',string.digits) #列印數字 print('letters:',string.ascii_letters) #大寫小寫字母 print('punctuation:',string.punctuation) #特殊字元 |
1.time.sleep def sleep(seconds): # real signature unknown; restored from __doc__ """ |