91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

      當前位置:首頁  >  技術干貨  > 分享幾段有用的Python代碼

      分享幾段有用的Python代碼

      來源:千鋒教育
      發(fā)布人:xqq
      時間: 2023-11-06 17:45:54 1699263954

      今天分享幾段工作生活中常用的代碼,都是最為基礎的功能和操作,而且大多還都是出現(xiàn)頻率比較高的,很多都是可以拿來直接使用或者簡單修改就可以放到自己的項目當中。喜歡的記得收藏、關注、點贊。

      廢話不多說,我們開始吧!

      日期生成

      很多時候我們需要批量生成日期,方法有很多,這里分享兩段Python代碼:

      獲取過去N天的日期

      importdatetime

      defget_nday_list(n):

      before_n_days=[]

      foriinrange(1,n+1)[::-1]:

      before_n_days.append(str(datetime.date.today()-datetime.timedelta(days=i)))

      returnbefore_n_days

      a=get_nday_list(30)

      print(a)

      Output:

      ['2021-12-23','2021-12-24','2021-12-25','2021-12-26','2021-12-27',

      '2021-12-28','2021-12-29','2021-12-30','2021-12-31','2022-01-01',

      '2022-01-02','2022-01-03','2022-01-04','2022-01-05','2022-01-06',

      '2022-01-07','2022-01-08','2022-01-09','2022-01-10','2022-01-11',

      '2022-01-12','2022-01-13','2022-01-14','2022-01-15','2022-01-16',

      '2022-01-17','2022-01-18','2022-01-19','2022-01-20','2022-01-21']

      生成一段時間內(nèi)的日期:

      importdatetime

      defcreate_assist_date(datestart=None,dateend=None):

      #創(chuàng)建日期輔助表

      ifdatestartisNone:

      datestart='2016-01-01'

      ifdateendisNone:

      dateend=datetime.datetime.now().strftime('%Y-%m-%d')

      #轉為日期格式

      datestart=datetime.datetime.strptime(datestart,'%Y-%m-%d')

      dateend=datetime.datetime.strptime(dateend,'%Y-%m-%d')

      date_list=[]

      date_list.append(datestart.strftime('%Y-%m-%d'))

      whiledatestart

      #日期疊加一天

      datestart+=datetime.timedelta(days=+1)

      #日期轉字符串存入列表

      date_list.append(datestart.strftime('%Y-%m-%d'))

      returndate_list

      d_list=create_assist_date(datestart='2021-12-27',dateend='2021-12-30')

      d_list

      Output:

      ['2021-12-27','2021-12-28','2021-12-29','2021-12-30']

      保存數(shù)據(jù)到CSV

      保存數(shù)據(jù)到CSV是太常見的操作了,分享一段我個人比較喜歡的寫法:

      defsave_data(data,date):

      ifnotos.path.exists(r'2021_data_%s.csv'%date):

      withopen("2021_data_%s.csv"%date,"a+",encoding='utf-8')asf:

      f.write("標題,熱度,時間,url\n")

      foriindata:

      title=i["title"]

      extra=i["extra"]

      time=i['time']

      url=i["url"]

      row='{},{},{},{}'.format(title,extra,time,url)

      f.write(row)

      f.write('\n')

      else:

      withopen("2021_data_%s.csv"%date,"a+",encoding='utf-8')asf:

      foriindata:

      title=i["title"]

      extra=i["extra"]

      time=i['time']

      url=i["url"]

      row='{},{},{},{}'.format(title,extra,time,url)

      f.write(row)

      f.write('\n')

      帶背景顏色的Pyecharts

      Pyecharts作為Echarts的優(yōu)秀Python實現(xiàn),受到眾多開發(fā)者的青睞,用Pyecharts作圖時,使用一個舒服的背景也會給我們的圖表增色不少。

      以餅圖為例,通過添加JavaScript代碼來改變背景顏色:

      defpie_rosetype(data)->Pie:

      background_color_js=(

      "newecharts.graphic.LinearGradient(0,0,0,1,"

      "[{offset:0,color:'#c86589'},{offset:1,color:'#06a7ff'}],false)"

      )

      c=(

      Pie(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))

      .add(

      "",

      data,

      radius=["30%","75%"],

      center=["45%","50%"],

      rosetype="radius",

      label_opts=opts.LabelOpts(formatter=":{c}"),

      )

      .set_global_opts(title_opts=opts.TitleOpts(title=""),

      )

      )

      returnc

      requests庫調(diào)用

      據(jù)統(tǒng)計,requests庫是Python家族里被引用得最多的第三方庫,足見其江湖地位之高大!

      發(fā)送GET請求:

      importrequests

      headers={

      'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/96.0.4664.110Safari/537.36',

      'cookie':'some_cookie'

      }

      response=requests.request("GET",url,headers=headers)

      發(fā)送POST請求:

      importrequests

      payload={}

      files=[]

      headers={

      'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/96.0.4664.110Safari/537.36',

      'cookie':'some_cookie'

      }

      response=requests.request("POST",url,headers=headers,data=payload,files=files)

      根據(jù)某些條件循環(huán)請求,比如根據(jù)生成的日期

      defget_data(mydate):

      date_list=create_assist_date(mydate)

      url="https://test.test"

      files=[]

      headers={

      'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/96.0.4664.110Safari/537.36',

      'cookie':''

      }

      fordindate_list:

      payload={'p':'10',

      'day':d,

      'nodeid':'1',

      't':'itemsbydate',

      'c':'node'}

      foriinrange(1,100):

      payload['p']=str(i)

      print("getdataof%sinpage%s"%(d,str(i)))

      response=requests.request("POST",url,headers=headers,data=payload,files=files)

      items=response.json()['data']['items']

      ifitems:

      save_data(items,d)

      else:

      break

      Python操作各種數(shù)據(jù)庫

      操作Redis

      連接Redis

      importredis

      defredis_conn_pool():

      pool=redis.ConnectionPool(host='localhost',port=6379,decode_responses=True)

      rd=redis.Redis(connection_pool=pool)

      returnrd

      寫入Redis

      fromredis_connimportredis_conn_pool

      rd=redis_conn_pool()

      rd.set('test_data','mytest')

      操作MongoDB

      連接MongoDB

      frompymongoimportMongoClient

      conn=MongoClient("mongodb://%s:%s@ipaddress:49974/mydb"%('username','password'))

      db=conn.mydb

      mongo_collection=db.mydata

      批量插入數(shù)據(jù)

      res=requests.get(url,params=query).json()

      commentList=res['data']['commentList']

      mongo_collection.insert_many(commentList)

      操作MySQL

      連接MySQL

      importMySQLdb

      #打開數(shù)據(jù)庫連接

      db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')

      #使用cursor()方法獲取操作游標

      cursor=db.cursor()

      執(zhí)行SQL語句

      #使用execute方法執(zhí)行SQL語句

      cursor.execute("SELECTVERSION()")

      #使用fetchone()方法獲取一條數(shù)據(jù)

      data=cursor.fetchone()

      print"Databaseversion:%s"%data

      #關閉數(shù)據(jù)庫連接

      db.close()

      Output:

      Databaseversion:5.0.45

      本地文件整理

      整理文件涉及需求的比較多,這里分享的是將本地多個CSV文件整合成一個文件。

      importpandasaspd

      importos

      df_list=[]

      foriinos.listdir():

      if"csv"ini:

      day=i.split('.')[0].split('_')[-1]

      df=pd.read_csv(i)

      df['day']=day

      df_list.append(df)

      df=pd.concat(df_list,axis=0)

      df.to_csv("total.txt",index=0)

      多線程代碼

      多線程也有很多實現(xiàn)方式,我們選擇自己最為熟悉順手的方式即可。

      importthreading

      importtime

      exitFlag=0

      classmyThread(threading.Thread):

      def__init__(self,threadID,name,delay):

      threading.Thread.__init__(self)

      self.threadID=threadID

      self.name=name

      self.delay=delay

      defrun(self):

      print("開始線程:"+self.name)

      print_time(self.name,self.delay,5)

      print("退出線程:"+self.name)

      defprint_time(threadName,delay,counter):

      whilecounter:

      ifexitFlag:

      threadName.exit()

      time.sleep(delay)

      print("%s:%s"%(threadName,time.ctime(time.time())))

      counter-=1

      #創(chuàng)建新線程

      thread1=myThread(1,"Thread-1",1)

      thread2=myThread(2,"Thread-2",2)

      #開啟新線程

      thread1.start()

      thread2.start()

      thread1.join()

      thread2.join()

      print("退出主線程")

      異步編程代碼

      異步爬取網(wǎng)站

      importasyncio

      importaiohttp

      importaiofiles

      asyncdefget_html(session,url):

      try:

      asyncwithsession.get(url=url,timeout=8)asresp:

      ifnotresp.status//100==2:

      print(resp.status)

      print("爬取",url,"出現(xiàn)錯誤")

      else:

      resp.encoding='utf-8'

      text=awaitresp.text()

      returntext

      exceptExceptionase:

      print("出現(xiàn)錯誤",e)

      awaitget_html(session,url)

      使用異步請求之后,對應的文件保存也需要使用異步,即是一處異步,處處異步。

      asyncdefdownload(title_list,content_list):

      asyncwithaiofiles.open('{}.txt'.format(title_list[0]),'a',

      encoding='utf-8')asf:

      awaitf.write('{}'.format(str(content_list)))

      以上就是我平時用得最多的代碼片段,希望對你有所幫助。

      以上內(nèi)容為大家介紹了分享幾段有用的Python代碼,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注多測師。http://www.jsszjs.cn/xwzx/

      tags: python培訓
      聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
      10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
      請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
      免費領取
      今日已有369人領取成功
      劉同學 138****2860 剛剛成功領取
      王同學 131****2015 剛剛成功領取
      張同學 133****4652 剛剛成功領取
      李同學 135****8607 剛剛成功領取
      楊同學 132****5667 剛剛成功領取
      岳同學 134****6652 剛剛成功領取
      梁同學 157****2950 剛剛成功領取
      劉同學 189****1015 剛剛成功領取
      張同學 155****4678 剛剛成功領取
      鄒同學 139****2907 剛剛成功領取
      董同學 138****2867 剛剛成功領取
      周同學 136****3602 剛剛成功領取
      相關推薦HOT