99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀Python字符串和文件操作常用函數(shù)分析
Python字符串和文件操作常用函數(shù)分析
2017-09-04
收藏

Python字符串和文件操作常用函數(shù)分析

這篇文章主要介紹了Python字符串和文件操作常用函數(shù),實例分析了Python中字符串及文件操作的常用技巧,非常具有實用價值,需要的朋友可以參考下.

本文實例分析了Python字符串和文件操作常用函數(shù)。分享給大家供大家參考。具體如下:


# -*- coding: UTF-8 -*-
'''
Created on 2010-12-27
@author: sumory
'''
importitertools
defa_containsAnyOf_b(seq,aset):
  '''判斷seq中是否含有aset里的一個或者多個項
    seq可以是字符串或者列表
    aset應該是字符串或者列表'''
  foriteminitertools.ifilter(aset.__contains__,seq):
    returnTrue
  returnFalse
defa_allIn_b(seq,aset):
  '''判斷seq中的所有項是否都在aset里
    seq可以是字符串或者列表
    aset應該是字符串或者列表'''
  foriteminseq:
    ifitemnotinaset:
      returnFalse
  returnTrue
defa_containsAll_b(seq,aset):
  '''判斷seq是否包含aset里的所有項
    seq可以是字符串或者列表
    aset應該是字符串或者列表
         任何一個set對象a,a.difference(b)等價于a-set(b),即返回a中所有不屬于b的元素'''
  returnnotset(aset).difference(seq)
  
importstring
#生成所有字符的可復用的字符串
sumory_allchars=string.maketrans('','')
defmakefilter(keep):
  '''返回一個函數(shù),此函數(shù)接受一個源字符串作為參數(shù)\
    并返回字符串的一個部分拷貝\
    此拷貝只包括keep中的字符,keep必須是一個普通的字符串\
    調用示例:makefilter('abca ')('abcdefgh ijkal cba')\
    在后面的字符串中保留前面出現(xiàn)的字符 abc a cba
  '''
  #按照sumory_allchars規(guī)則剔除sumory_allchars字符串中的keep里的字符
  #這里得到keep在sumory_allchars的補集
  deletechars=sumory_allchars.translate(sumory_allchars,keep)
  #生成并返回需要的過濾函數(shù)(作為閉包)
  defrealdelete(sourseStr):
    returnsourseStr.translate(sumory_allchars,deletechars)
  returnrealdelete
deflist_removesame(list):
  '''刪除list中的重復項'''
  templist=[]
  forcinlist:
    ifcnotintemplist:
      templist.append(c)
  returntemplist
defre_indent(str,numberofspace):
  '''
  縮進\
  將字符串str中按換行符劃分并在每句前加上numberofspace個space\
  再組合成字符串'''
  spaces=numberofspace*' '
  lines=[spaces+line.strip()forlineinstr.splitlines()]
  return'\n'.join(lines)
defreplace_strby_dict(sourseStr,dict,marker='"',safe=False):
  '''使用字典替換源字符串中的被marker包裹的相應值'''
  #如果safe為True,那么字典中沒找到key時不替換
  ifsafe:
    deflookup(w):
      returndict.get(w,w.join(marker*2))
   #w.join(marker*2)用marker包裹w
  #如果safe為False,那么字典中沒找到key時拋異常\
  #若將dict[w]換為dict.get(w)則沒找到時返回None
  else:
    deflookup(w):
      returndict[w]
  #根據marker切分源字符串
  splitparts=sourseStr.split(marker)
  #取出切分后的奇數(shù)項
  #因為切分后,列表中源字符串中marker包裹的項肯定位于基數(shù)部位
  #就算是'"first"s is one'這樣的字符串也是如此
  #分割后的第0項為空串,第1項為first
  splitparts[1::2]=map(lookup,splitparts[1::2])
  return''.join(splitparts)
defsimply_replace_strby_dict(sourseStr,dict,safe=True):
  '''根據dict內容替換sourseStr原串中$標記的子字符串\
  dict= {'name':'sumory','else':'default'}
  $$5 -> $5
  $else -> default
  ${name}'s method -> sumory's method
  '''
  style=string.Template(sourseStr)
  #如果safe,在dict中找不到的話不會替換,照樣保留原串
  ifsafe:
    returnstyle.safe_substitute(dict)
  #false,找不到會拋異常
  else:
    returnstyle.substitute(dict)
##################################################
defscanner(object,linehandler):
  '''用linehandler方法遍歷object的每一項'''
  forlineinobject:
    linehandler(line)
defprintfilelines(path):
  '''讀取path路徑下的文件屏逐行打印'''
  fileobject=open(path,'r')#open不用放到try里
  try:
    forlineinfileobject:
      print(line.rstrip('\n'))
  finally:
    fileobject.close()
defwritelisttofile(path,ilist):
  fileobject=open(path,'w')
  try:
    fileobject.writelines(ilist)
  finally:
    fileobject.close()
importzipfile
deflistzipfilesinfo(path):
  z=zipfile.ZipFile(path,'r')
  try:
    forfilenameinz.namelist():
      bytes=z.read(filename)
      print('File:%s Size:%s'%(unicode(filename,'cp936').decode('utf-8'),len(bytes)))
  finally:
    z.close()
  
importos,fnmatch
deflist_all_files(root,patterns='*',single_level=False,yield_folders=False):
  '''列出目錄(或者及其子目錄下的文件)'''
  #分割模式到列表
  patterns=patterns.split(';')
  forpath,subdirs,filesinos.walk(root):
    ifyield_folders:
      files.extend(subdirs)
    files.sort()
    fornameinfiles:
      forpatinpatterns:
        iffnmatch.fnmatch(name, pat):
          yield'/'.join(unicode(os.path.join(path,name),'cp936').split('\\'))
          break
    ifsingle_level:
      break
defswapextensions(root,before,after):
  ifbefore[:1]!='.':
    before='.'+before
  extensionlen=-len(before)
  ifafter[:1]!='.':
    after='.'+after
  forpath,subdirs,filesinos.walk(root):
    foroldfileinfiles:
      ifoldfile[extensionlen:]==before:
        oldfile=os.path.join(path,oldfile)
        newfile=oldfile[:extensionlen]+after
        os.rename(oldfile, newfile)

希望本文所述對大家的Python程序設計有所幫助。



數(shù)據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }