最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

推薦收藏!這幾段祖?zhèn)鞯?Python 代碼拿來就用

2023-03-24 15:34 作者:下班被游戲打-  | 我要投稿

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

廢話不多說,我們開始吧

日期生成

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

獲取過去 N 天的日期

import?datetimedef?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']

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

import?datetimedef?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<dateend: ????????#?日期疊加一天????????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 是太常見的操作了,分享一段我個人比較喜歡的寫法

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("標題,熱度,時間,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 實現(xiàn),受到眾多開發(fā)者的青睞,用 Pyecharts 作圖時,使用一個舒服的背景也會給我們的圖表增色不少

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

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 庫調(diào)用

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

發(fā)送 GET 請求

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 請求

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)請求,比如根據(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ù)庫

操作 Redis

連接 Redis

import?redisdef?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ù)庫連接db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)#?使用cursor()方法獲取操作游標?cursor?=?db.cursor()

執(zhí)行 SQL 語句

#?使用?execute?方法執(zhí)行?SQL?語句cursor.execute("SELECT?VERSION()")#?使用?fetchone()?方法獲取一條數(shù)據(jù)data?=?cursor.fetchone()print?"Database?version?:?%s?"?%?data#?關(guān)閉數(shù)據(jù)庫連接db.close()

Output:

Database version : 5.0.45

本地文件整理

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

import?pandas?as?pdimport?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)

多線程代碼

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

import?threading import?time exitFlag?=?0class?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?asyncioimport?aiohttpimport?aiofilesasync?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)錯誤") ????????????else: ????????????????resp.encoding?=?'utf-8'????????????????text?=?await?resp.text() ????????????????return?text ????except?Exception?as?e: ????????print("出現(xiàn)錯誤",?e) ????????await?get_html(session,?url)

使用異步請求之后,對應(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)))


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

好了,這就是今天分享的全部內(nèi)容,喜歡就點個贊吧


推薦收藏!這幾段祖?zhèn)鞯?Python 代碼拿來就用的評論 (共 條)

分享到微博請遵守國家法律
威信县| 阳泉市| 邳州市| 通海县| 姜堰市| 会同县| 南丰县| 汨罗市| 惠来县| 武宁县| 株洲市| 崇仁县| 北宁市| 周宁县| 海原县| 霸州市| 逊克县| 富蕴县| 高邑县| 平凉市| 沛县| 崇礼县| 治多县| 道孚县| 丁青县| 内乡县| 甘谷县| 丽江市| 栾城县| 县级市| 山阳县| 青海省| 巨鹿县| 炎陵县| 尉犁县| 九江县| 施甸县| 西青区| 盐津县| 乌兰察布市| 灵石县|