tiny批量壓縮圖片

tiny

介紹

tiny批量壓縮圖片

源代碼

https://gitee.com/zhoulikai/tiny

import os
import sys
import tinify
'''
    列出所有path及其子目錄下符合fileter條件的文件
'''
def list_dir(path, res, filter):
    if path:
        for file in os.listdir(path):
            temp_dir = os.path.join(path, file)
            if os.path.isdir(temp_dir):
                list_dir(temp_dir, res, filter)
            else:
                if (file.endswith(filter) and not file.startswith(".")):
                    res.append(temp_dir)
        return res
    else:
        return res

'''
    使用find 命令搜索所有path及其子目錄下符合fileter條件的文件
'''
def list_dir_by_shell(path, filter):
    find_file_shell = 'find ' + path + ' -type f -name ' + '*' + filter
    # print(find_file_shell)
    output = os.popen(find_file_shell)
    result = output.read()
    # print(result)
    return result.split()

'''
    tiny 壓縮
'''
def tiny(path, filter):
    tinify.key = "J3ufeOH47y0x5NJVvdbBJY3DkhI7EzWZ"
    res = []
    list_dir(path, res, filter)
    # res = list_dir_by_shell(path, filter)
    if res:
        tiny_dir_name = "tiny_" + os.path.basename(path) ;
        tiny_dir_path = os.path.join(os.path.dirname(path), tiny_dir_name)
        if not os.path.exists(tiny_dir_path):
            os.makedirs(tiny_dir_path)
        for file in res:
            print("壓縮開始" + file)
            source = tinify.from_file(file)
            tiny_file = os.path.join(tiny_dir_path, os.path.basename(file))
            source.to_file(tiny_file)
            print(file + "tiny 壓縮成功:壓縮后的文件為:" + tiny_file)
    else:
        print("沒有要壓縮的文件")
    

def main():
    if len(sys.argv) <= 2:
        print("請輸入要壓縮的目錄及過濾條件")
        return 
    path = sys.argv[1]
    filter = sys.argv[2]
    tiny(path, filter)

if __name__ == "__main__":
    main()

運行環(huán)境

  1. 操作系統(tǒng): Linux or Mac
  2. python版本: python3以上
  3. 依賴: pip install --upgrade tinify

使用說明

  1. python tiny.py [要壓縮的文件所在的目錄] [搜索的條件如只壓縮png或者jpg]
  2. 例如: python tiny.py /var/www/resume/img/ott jpg
  3. 壓縮后的文件所在目錄:/var/www/resume/img/tiny_ott
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颓屑,一起剝皮案震驚了整個濱河市薪捍,隨后出現(xiàn)的幾起案子魄懂,更是在濱河造成了極大的恐慌粉渠,老刑警劉巖聂抢,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剪决,居然都是意外死亡叮趴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門友瘤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翠肘,“玉大人檐束,你說我怎么就攤上這事辫秧。” “怎么了被丧?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵盟戏,是天一觀的道長。 經(jīng)常有香客問我甥桂,道長柿究,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任黄选,我火速辦了婚禮蝇摸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘办陷。我一直安慰自己貌夕,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布民镜。 她就那樣靜靜地躺著啡专,像睡著了一般。 火紅的嫁衣襯著肌膚如雪制圈。 梳的紋絲不亂的頭發(fā)上们童,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天畔况,我揣著相機與錄音,去河邊找鬼慧库。 笑死跷跪,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的完沪。 我是一名探鬼主播域庇,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼覆积!你這毒婦竟也來了听皿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤宽档,失蹤者是張志新(化名)和其女友劉穎尉姨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吗冤,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡又厉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了椎瘟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片覆致。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肺蔚,靈堂內(nèi)的尸體忽然破棺而出煌妈,到底是詐尸還是另有隱情,我是刑警寧澤宣羊,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布璧诵,位于F島的核電站,受9級特大地震影響仇冯,放射性物質(zhì)發(fā)生泄漏之宿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一苛坚、第九天 我趴在偏房一處隱蔽的房頂上張望比被。 院中可真熱鬧,春花似錦泼舱、人聲如沸等缀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽项滑。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枪狂,已是汗流浹背危喉。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留州疾,地道東北人辜限。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像严蓖,于是被迫代替她去往敵國和親薄嫡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容