1. 分享 10 個(gè)日常使用的腳本

        共 4045字,需瀏覽 9分鐘

         ·

        2022-01-15 03:38

        作為程序員,每天都很多問(wèn)題需要編碼來(lái)解決,有些問(wèn)題僅通過(guò) Python 的標(biāo)準(zhǔn)庫(kù)并不能輕松解決,本文今天分享一些高頻問(wèn)題的解決方案,可以作為一個(gè)手邊的工具箱,你可以先收藏備用。

        1、測(cè)網(wǎng)速,選擇最佳服務(wù)器

        這個(gè)腳本可以測(cè)試上傳、下載速度,也提供了函數(shù) get_best_server 來(lái)選擇最佳服務(wù)器,在客戶端和多服務(wù)器模式中非常實(shí)用。

        腳本:

        #?pip?install?pyspeedtest
        #?pip?install?speedtest
        #?pip?install?speedtest-cli
        #方法1
        import?speedtest
        speedTest?=?speedtest.Speedtest()?
        print(speedTest.get_best_server())
        #檢查下載速度?
        print(speedTest.download())
        #檢查上傳速度
        print(speedTest.upload())
        #方法2
        import?pyspeedtest
        st?=?pyspeedtest.SpeedTest()
        st.ping()
        st.download()
        st.upload()

        2、使用 google 搜索關(guān)鍵詞

        有時(shí)候?yàn)榱艘龑?dǎo)用戶使用搜索引擎,我們可以直接將錯(cuò)誤關(guān)鍵詞用 google 搜索下,將結(jié)果顯示在界面上,這樣用戶可以直接點(diǎn)擊鏈接來(lái)查看搜索結(jié)果,很方便,不需要再?gòu)?fù)制關(guān)鍵詞,打開(kāi)瀏覽器搜素等一系列麻煩。

        #pip?install?google
        from?googlesearch?import?search
        query?=?"somenzz"

        for?url?in?search(query):
        ????print(url)

        print 的結(jié)果就是 google 搜索結(jié)果的 url 列表,類似的,百度和 bing 也應(yīng)該有對(duì)應(yīng)的庫(kù),你可以搜索以下。

        3、Web 機(jī)器人

        這個(gè)咱之前已經(jīng)分享過(guò)了,selenium 和 playwright 都可以,我個(gè)人更喜歡 playwright

        selenium 示例代碼:

        #?pip?install?selenium
        import?time
        from?selenium?import?webdriver
        from?selenium.webdriver.common.keys?import?Keys
        bot?=?webdriver.Chrome("chromedriver.exe")
        bot.get('http://www.google.com')
        search?=?bot.find_element_by_name('q')
        search.send_keys("somenzz")
        search.send_keys(Keys.RETURN)
        time.sleep(5)
        bot.quit()

        playwright 示例代碼:

        #pip?install?playwright
        #playwright?install
        from?playwright.sync_api?import?sync_playwright

        with?sync_playwright()?as?p:
        ????browser?=?p.chromium.launch()
        ????page?=?browser.new_page()
        ????page.goto("http://playwright.dev")
        ????print(page.title())
        ????browser.close()

        前文:

        4、獲取圖片的 exif 信息

        有兩種方法獲取,一個(gè)是使用 pillow,一個(gè)是使用 exifread:

        #?Get?Exif?of?Photo
        #?Method?1
        #?pip?install?pillow
        import?PIL.Image
        import?PIL.ExifTags
        img?=?PIL.Image.open("Img.jpg")
        exif_data?=?
        {
        ????PIL.ExifTags.TAGS[i]:?j
        ????for?i,?j?in?img._getexif().items()
        ????if?i?in?PIL.ExifTags.TAGS
        }
        print(exif_data)

        #?Method?2
        #?pip?install?ExifRead
        import?exifread
        filename?=?open(path_name,?'rb')
        tags?=?exifread.process_file(filename)
        print(tags)

        如果查找并刪除 exif 信息,可以看下前文Python自動(dòng)化辦公-玩轉(zhuǎn)圖片 中的第三小結(jié)-3、刪除圖片的元數(shù)據(jù)。

        5、OCR

        OCR 的全稱是 Optical Character Recognition,即光學(xué)字符識(shí)別,通俗點(diǎn)講就是文字識(shí)別,這里有個(gè)很簡(jiǎn)單的腳本,適用于 Windows,不過(guò)需要你在 GitHub 上下載 tesseract.exe[1]

        #?pip?install?pytesseract
        import?pytesseract
        from?PIL?import?Image

        pytesseract.pytesseract.tesseract_cmd?=?r'C:\Program?Files\Tesseract-OCR\tesseract.exe'

        t=Image.open("img.png")
        text?=?pytesseract.image_to_string(t,?config='')
        print(text)

        6、將照片轉(zhuǎn)換為卡通圖片

        #?pip?install?opencv-python
        import?cv2

        img?=?cv2.imread('img.jpg')
        grayimg?=?cv2.cvtColor(img,?cv2.COLOR_BGR2GRAY)
        grayimg??=?cv2.medianBlur(grayimg,?5)

        edges?=?cv2.Laplacian(grayimg?,?cv2.CV_8U,?ksize=5)
        r,mask?=cv2.threshold(edges,100,255,cv2.THRESH_BINARY_INV)
        img2?=?cv2.bitwise_and(img,?img,?mask=mask)
        img2?=?cv2.medianBlur(img2,?5)

        cv2.imwrite("cartooned.jpg",?mask)

        對(duì)比下就是這樣:

        7、清空 recycle.bin

        recycle.bin 是系統(tǒng)回收站在每一個(gè)磁盤上的鏈接文件夾,用于保存磁盤上刪除的文件或者文件夾信息,是系統(tǒng)重要的隱藏文件;默認(rèn)情況下,會(huì)占用用戶設(shè)置過(guò)的磁盤的容量,因此,用戶清空回收站之后不會(huì)釋放空間。

        #?pip?install?winshell
        import?winshell

        try:
        ????winshell.recycle_bin().empty(confirm=False,?show_progress=False,?sound=True)
        ????print("Recycle?bin?已本清空")
        except:
        ????print("Recycle?bin?是空文件")

        8、pdf 轉(zhuǎn)圖片

        將 pdf 文件轉(zhuǎn)成多個(gè)圖片

        import?fitz
        pdf?=?'sample_pdf.pdf'
        doc?=?fitz.open(pdf)
        ?
        for?page?in?doc:
        ????pix?=?page.getPixmap(alpha=False)
        ????pix.writePNG('page-%i.png'?%?page.number)

        9、Hex 轉(zhuǎn) RGB

        def?Hex_to_Rgb(hex):
        ????h?=?hex.lstrip('#')
        ????return?tuple(int(h[i:i+2],?16)?for?i?in?(0,?2,?4))
        print(Hex_to_Rgb('#c96d9d'))??#?(201,?109,?157)
        print(Hex_to_Rgb('#fa0515'))?#?(250,?5,?21)

        10、檢查網(wǎng)站是否下線

        我們可以通過(guò) http 的狀態(tài)碼判斷一個(gè)網(wǎng)站的服務(wù)是否正常運(yùn)行。

        #?pip?install?requests

        #?方法?1
        import?urllib.request
        from?urllib.request?import?Request,?urlopen
        req?=?Request('https://somenzz.cn',?headers={'User-Agent':?'Mozilla/5.0'})
        webpage?=?urlopen(req).getcode()
        print(webpage)?#?200
        #?方法?2
        import?requests
        r?=?requests.get("https://somenzz.cn")
        print(r.status_code)?#?200

        最后的話

        本文分享了 10 日常實(shí)用的小腳本,希望能拋磚引玉,基于此你可以寫出更好用更強(qiáng)大的程序,如果有所幫助,還請(qǐng)點(diǎn)個(gè)贊,也可以留言互動(dòng)。

        推薦閱讀:

        分享6個(gè)實(shí)用的Python自動(dòng)化腳本

        分享 6 個(gè)實(shí)用的輪子

        5個(gè)高效實(shí)用的內(nèi)置迭代器

        分享幾個(gè)實(shí)用的問(wèn)題

        Python 標(biāo)準(zhǔn)庫(kù)中最有用的裝飾器

        參考資料

        [1]

        tesseract.exe: https://tesseract-ocr.github.io/tessdoc/Downloads.html


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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 孙老头客厅大战最火的一句 | 操屄在线 | www.99热.com | 国内一级视频 | 国产精品第56页 |