V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
liuliliuli2017
V2EX  ›  Python

Python 周记/Week 0

  •  
  •   liuliliuli2017 · 2017-03-17 20:20:10 +08:00 · 3136 次点击
    这是一个创建于 2844 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好
    作为一个很懒的肥宅,有多懒呢?

    每次找到好图都想右键!
    嗯,听说爬虫很厉害
    好的!
    我要做个爬虫扒图!
    ...
    5 个月后,也就是今天,我还只会安装 python...
    感觉不行动的话又会过去 5 个月 /微笑
    所以!
    从今天开始做一个长期挑战 : Python 学习周记
    即是将学习笔记整理发布!并尽可能不断更,先定一个小目标,独立写出自动筛选扒图存盘的虫虫

    按照惯例都是从安装配置环境开始一步步讲,可是我已经无数次从头学习 Hello world...这次想换一下


    路线

    后续增加...

    方法

    根据实际问题展开学习,解构知识路径

    声明

    • 想到哪写到哪
    • 使用 Python3.6
    • 我比较菜鸡(都不会),日记各种不完美
    • 没有啦

    那么,开始吧!
    第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

    方法是调用一个图形处理库 PIL (不支持 Python3 ,所以改用 Pillow )进行处理

    • 我用的版本是 3.6 , Win 上命令安装无效,所以找到Pillow 下载页选择合适版本下载安装即可

    pypi

    • 执行

    思路

    from PIL import Image, ImageDraw, ImageFont, ImageColor
    def add_num(img):
        draw = ImageDraw.Draw(img)
        myfont = ImageFont.truetype('C:/windows/fonts/calibri.ttf',size=40)
        fillcolor = ImageColor.colormap.get('red')
        width,height = img.size
        draw.text((width-30,0),'2',font=myfont,fill=fillcolor)
        img.save('result.jpg','jpeg')
        return 0
    if __name__ == '__main__':
        image = Image.open('test.jpg')
        add_num(image)
    

    result

    • 遇到的问题

    不能调用字体文件名带中文的字体

    • 另外

    关于return 0 return 语句用来从函数中 return(返回),也就是说跳出函数
    延展阅读: Python return 语句

    关于if __name__ == '__main__': 让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行
    延展阅读:浅析 python 中__name__ = 'main' 的作用

    关于 Pillow
    详细Pillow 官方文档


    ok !本周完结!本来的基础只能写 if 、 while 的小循环。看调用 from import 貌似也能明白点,但是强行看代码遇到的麻烦也不是一点半点,整体花费时间也不少,好在还是动手了。 周末研究下怎么做出来真实的通知小气泡,比如这样

    QQ

    拜拜~

    15 条回复    2017-03-24 00:10:26 +08:00
    mingyun
        1
    mingyun  
       2017-03-17 23:44:03 +08:00
    感谢分享, win 下安装库真蛋疼
    NoAnyLove
        2
    NoAnyLove  
       2017-03-18 04:42:08 +08:00
    用 pip 啊,很多编译麻烦的库都提前编译好了,完全没压力好么。。。。。。
    liuliliuli2017
        3
    liuliliuli2017  
    OP
       2017-03-18 12:31:41 +08:00 via iPhone
    @NoAnyLove 3.6 不知道为什么用不了 pip ,所以我才改用 exe
    123s
        4
    123s  
       2017-03-18 14:55:34 +08:00 via Android
    怎么是从这个开始?
    liuliliuli2017
        5
    liuliliuli2017  
    OP
       2017-03-18 15:44:52 +08:00
    @123s 应该从爬虫开始么哈哈
    123s
        6
    123s  
       2017-03-18 16:53:47 +08:00 via Android
    @liuliliuli2017 是啊,我也开始要写了,看了一两天语法了
    liuliliuli2017
        7
    liuliliuli2017  
    OP
       2017-03-18 17:00:51 +08:00
    @123s 那你加油,我想绕一圈再去写,我现在的水平稍微复杂的代码都得搜一下才明白
    NoAnyLove
        8
    NoAnyLove  
       2017-03-19 00:54:02 +08:00
    @liuliliuli2017 是不是提示找不到 pip 可执行程序?试试`python3 -m pip install 包名`呢
    liuliliuli2017
        9
    liuliliuli2017  
    OP
       2017-03-19 03:00:00 +08:00 via iPhone
    @NoAnyLove 好的,明早醒来试试
    liuliliuli2017
        10
    liuliliuli2017  
    OP
       2017-03-19 11:25:29 +08:00 via iPhone
    @mingyun 嘻嘻(◍•ᴗ•◍)
    liuliliuli2017
        11
    liuliliuli2017  
    OP
       2017-03-20 13:28:01 +08:00
    @NoAnyLove 试过了,还是不行
    NoAnyLove
        12
    NoAnyLove  
       2017-03-20 22:54:13 +08:00
    @liuliliuli2017 报的什么错?
    liuliliuli2017
        13
    liuliliuli2017  
    OP
       2017-03-21 01:01:34 +08:00
    @NoAnyLove
    ```
    Traceback (most recent call last):
    File "C:\Program Files\Python36\lib\site-packages\PIL\ImageFont.py", line 238, in truetype
    return FreeTypeFont(font, size, index, encoding)
    File "C:\Program Files\Python36\lib\site-packages\PIL\ImageFont.py", line 127, in __init__
    self.font = core.getfont(font, size, index, encoding)
    OSError: cannot open resource

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:\Users\电扇君\Desktop\Python 周记\Week0\img.py", line 12, in <module>
    add_num(image)
    File "C:\Users\电扇君\Desktop\Python 周记\Week0\img.py", line 4, in add_num
    myfont = ImageFont.truetype('C:/windows/fonts/明兰 light',size=40)
    File "C:\Program Files\Python36\lib\site-packages\PIL\ImageFont.py", line 273, in truetype
    return FreeTypeFont(fontpath, size, index, encoding)
    File "C:\Program Files\Python36\lib\site-packages\PIL\ImageFont.py", line 127, in __init__
    self.font = core.getfont(font, size, index, encoding)
    OSError: cannot open resource
    ```
    LuckSouth
        14
    LuckSouth  
       2017-03-23 20:26:52 +08:00
    加油吧,慢慢来~
    liuliliuli2017
        15
    liuliliuli2017  
    OP
       2017-03-24 00:10:26 +08:00
    @LuckSouth 嘻嘻
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.