1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        祖?zhèn)鱌ython代碼,備用!

        共 6542字,需瀏覽 14分鐘

         ·

        2022-02-13 07:27

        點(diǎn)擊下方AI算法與圖像處理”,一起進(jìn)步!

        重磅干貨,第一時(shí)間送達(dá)


        今天分享幾段工作生活中常用的代碼,都是最為基礎(chǔ)的功能和操作,而且大多還都是出現(xiàn)頻率比較高的,很多都是可以拿來(lái)直接使用或者簡(jiǎn)單修改就可以放到自己的項(xiàng)目當(dāng)中

        日期生成

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

        獲取過(guò)去 N 天的日期

        import?datetime

        def?get_nday_list(n):
        ????before_n_days?=?[]
        ????for?i?in?range(1,?n?+?1)[::-1]:
        ????????before_n_days.append(str(datetime.date.today()?-?datetime.timedelta(days=i)))
        ????return?before_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']

        生成一段時(shí)間區(qū)間內(nèi)的日期

        import?datetime

        def?create_assist_date(datestart?=?None,dateend?=?None):
        ????#?創(chuàng)建日期輔助表

        ????if?datestart?is?None:
        ????????datestart?=?'2016-01-01'
        ????if?dateend?is?None:
        ????????dateend?=?datetime.datetime.now().strftime('%Y-%m-%d')

        ????#?轉(zhuǎn)為日期格式
        ????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'))
        ????while?datestart????????#?日期疊加一天
        ????????datestart+=datetime.timedelta(days=+1)
        ????????#?日期轉(zhuǎn)字符串存入列表
        ????????date_list.append(datestart.strftime('%Y-%m-%d'))
        ????return?date_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 是太常見的操作了,分享一段我個(gè)人比較喜歡的寫法

        def?save_data(data,?date):
        ????if?not?os.path.exists(r'2021_data_%s.csv'?%?date):
        ????????with?open("2021_data_%s.csv"?%?date,?"a+",?encoding='utf-8')?as?f:
        ????????????f.write("標(biāo)題,熱度,時(shí)間,url\n")
        ????????????for?i?in?data:
        ????????????????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:
        ????????with?open("2021_data_%s.csv"?%?date,?"a+",?encoding='utf-8')?as?f:
        ????????????for?i?in?data:
        ????????????????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 實(shí)現(xiàn),受到眾多開發(fā)者的青睞,用 Pyecharts 作圖時(shí),使用一個(gè)舒服的背景也會(huì)給我們的圖表增色不少

        以餅圖為例,通過(guò)添加 JavaScript 代碼來(lái)改變背景顏色

        def?pie_rosetype(data)?->?Pie:
        ????background_color_js?=?(
        ????"new?echarts.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=""),
        ????????????????????????)
        ????)
        ????return?c

        requests 庫(kù)調(diào)用

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

        發(fā)送 GET 請(qǐng)求

        import?requests


        headers?=?{
        ????'user-agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/96.0.4664.110?Safari/537.36',
        ??'cookie':?'some_cookie'
        }
        response?=?requests.request("GET",?url,?headers=headers)

        發(fā)送 POST 請(qǐng)求

        import?requests


        payload={}
        files=[]
        headers?=?{
        ????'user-agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/96.0.4664.110?Safari/537.36',
        ??'cookie':?'some_cookie'
        }
        response?=?requests.request("POST",?url,?headers=headers,?data=payload,?files=files)

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

        def?get_data(mydate):
        ????date_list?=?create_assist_date(mydate)
        ????url?=?"https://test.test"
        ????files=[]
        ????headers?=?{
        ????????'user-agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/96.0.4664.110?Safari/537.36',
        ????????'cookie':?''
        ????????}
        ????for?d?in?date_list:
        ????????payload={'p':?'10',
        ????????'day':?d,
        ????????'nodeid':?'1',
        ????????'t':?'itemsbydate',
        ????????'c':?'node'}
        ????????for?i?in?range(1,?100):
        ????????????payload['p']?=?str(i)
        ????????????print("get?data?of?%s?in?page?%s"?%?(d,?str(i)))
        ????????????response?=?requests.request("POST",?url,?headers=headers,?data=payload,?files=files)
        ????????????items?=?response.json()['data']['items']
        ????????????if?items:
        ????????????????save_data(items,?d)
        ????????????else:
        ????????????????break

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

        操作 Redis

        連接 Redis

        import?redis


        def?redis_conn_pool():
        ????pool?=?redis.ConnectionPool(host='localhost',?port=6379,?decode_responses=True)
        ????rd?=?redis.Redis(connection_pool=pool)
        ????return?rd

        寫入 Redis

        from?redis_conn?import?redis_conn_pool


        rd?=?redis_conn_pool()
        rd.set('test_data',?'mytest')

        操作 MongoDB

        連接 MongoDB

        from?pymongo?import?MongoClient


        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

        import?MySQLdb

        #?打開數(shù)據(jù)庫(kù)連接
        db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)

        #?使用cursor()方法獲取操作游標(biāo)?
        cursor?=?db.cursor()

        執(zhí)行 SQL 語(yǔ)句

        #?使用?execute?方法執(zhí)行?SQL?語(yǔ)句
        cursor.execute("SELECT?VERSION()")

        #?使用?fetchone()?方法獲取一條數(shù)據(jù)
        data?=?cursor.fetchone()

        print?"Database?version?:?%s?"?%?data

        #?關(guān)閉數(shù)據(jù)庫(kù)連接
        db.close()

        Output:

        Database version : 5.0.45

        本地文件整理

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

        import?pandas?as?pd
        import?os


        df_list?=?[]
        for?i?in?os.listdir():
        ????if?"csv"?in?i:
        ????????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)

        多線程代碼

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

        import?threading
        import?time

        exitFlag?=?0

        class?myThread?(threading.Thread):
        ????def?__init__(self,?threadID,?name,?delay):
        ????????threading.Thread.__init__(self)
        ????????self.threadID?=?threadID
        ????????self.name?=?name
        ????????self.delay?=?delay
        ????def?run(self):
        ????????print?("開始線程:"?+?self.name)
        ????????print_time(self.name,?self.delay,?5)
        ????????print?("退出線程:"?+?self.name)

        def?print_time(threadName,?delay,?counter):
        ????while?counter:
        ????????if?exitFlag:
        ????????????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)站

        import?asyncio
        import?aiohttp
        import?aiofiles

        async?def?get_html(session,?url):
        ????try:
        ????????async?with?session.get(url=url,?timeout=8)?as?resp:
        ????????????if?not?resp.status?//?100?==?2:
        ????????????????print(resp.status)
        ????????????????print("爬取",?url,?"出現(xiàn)錯(cuò)誤")
        ????????????else:
        ????????????????resp.encoding?=?'utf-8'
        ????????????????text?=?await?resp.text()
        ????????????????return?text
        ????except?Exception?as?e:
        ????????print("出現(xiàn)錯(cuò)誤",?e)
        ????????await?get_html(session,?url)

        使用異步請(qǐng)求之后,對(duì)應(yīng)的文件保存也需要使用異步,即是一處異步,處處異步

        async?def?download(title_list,?content_list):
        ????async?with?aiofiles.open('{}.txt'.format(title_list[0]),?'a',
        ?????????????????????????????encoding='utf-8')?as?f:
        ????????await?f.write('{}'.format(str(content_list)))


        好了,這就是今天分享的全部?jī)?nèi)容,喜歡就點(diǎn)個(gè)贊+在看吧~

        努力分享優(yōu)質(zhì)的計(jì)算機(jī)視覺相關(guān)內(nèi)容,歡迎關(guān)注:

        交流群


        歡迎加入公眾號(hào)讀者群一起和同行交流,目前有美顏、三維視覺、計(jì)算攝影、檢測(cè)、分割、識(shí)別、NeRF、GAN、算法競(jìng)賽等微信群


        個(gè)人微信(如果沒有備注不拉群!
        請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



        下載1:何愷明頂會(huì)分享


        AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


        下載2:終身受益的編程指南:Google編程風(fēng)格指南


        AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



        下載3 CVPR2021

        AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文



        瀏覽 37
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久久久久中文 | 怡春院在线视频 | 天天操天天日天天摸 | 国产骚婷婷内射 | 国产黄色片视频电影网站 | 中外毛片| 婷婷丁香五月综合精品 | 嗯~啊~快点死我视频在线看 | 无码国产精品一区二区免费式直播 | 18秘 做爰喷水免费视频网站 |