刚入门学python,最近照着实验楼做了一个基础的练手项目:图像转字符画,里面用到了argparse和pillow-image。看了python关于这个函数的介绍和网上的一些教程,想把重点整理出来,正好最近发现前一天还挺明白的内容,第二天就忘的差不多了,整理成文章忘了还可以再看看。初学很可能有概念错误的地方,欢迎指正。

整体思路:使用argparse传入文件,选填输出的文件,定义图片大小(相较于input方法,argparse可以设置默认值)。pillow-image打开图片,根据argparse的参数高和宽重置图片大小,将图片位置和像素对应起来,像素可以转换成灰度,再根据灰度匹配字符。最后输出文件

argparse:argparse是python用于命令行参数/选项解析的标准模块。所谓命令行参数/选项,就是我们在执行python文件时输入的内容。读取文件内容有两种方法,一种是在源码里直接引用,另一种是从命令行输入。比如:一个python文件a.py,需要读取一个文件的内容,在命令行可以输入 python a.py b.txt,如果文件换成c.txt,可以直接输入python a.py c.txt,argparse就是python实现第二种读取方式的一种方法。

使用方法:导入模块importargparse

创建一个ArgumentParser对象:argparse.ArgumentParser()

添加参数parser.add_argument('file')、parser.add_argument('-o', '--output'),第一个是位置参数,输入命令行参数时直接输入,否则程序会报错;第二个是可选参数,根据参数长度使用-或--,先在命令行输入参数名 再输入对应函数,如不输入程序仍可执行。还有很多其他参数,如类型参数,可根据项目需要了解。

args = parser.parse_args(),运行命令行解析

pillow-image:pillow是python图像处理库,基本功能包括合成、剪切、粘贴、旋转等。

使用方法:导入模块fromPIL importImage

打开图片im = Image.open(file)

重新设置图片大小:im = im.resize((args.width,args.height))

根据位置获取像素,输出格式 r,g,b,a = im.getpixel((j, i))

小tips:getpixel输入的格式是元组,元组要加括号,调用函数也要加括号,所以格式是getpixel((x,y))

r,g,b,a中的a代表透明度,如果a=0 代表图片是透明的没有颜色

argparse输入可选参数时,格式要与生成的文件严格对应,注意加不加后缀名的区别

python导入pillow模块_Python:argparse模块和pillow-image相关推荐

  1. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  2. python 导入包 作用域_Python 包、模块、函数、变量作用域

    Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量 Python是利用包和模块来组织一个项目的. 包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个 ...

  3. python导入同级包_python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

  4. python如何自定义模块_python自定义模块和开源模块使用方法

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  5. python 多层包多模块_python Modules模块操作

    今天学习python的Modules模块操作,并记录学习过程欢迎大家一起交流分享. 首先新建一个python文件命名为my_module.py的自定义moudle文件,在这个文件中进行模块代码编写: ...

  6. python中的模块_python的模块和包的详细说明

    Python模块和包的详细说明 模块的导入 模块的加载与修改 模块和脚本的说明 模块搜索路径 包的导入 一.模块的导入 之前我们简单的使用了一下模块,并没有详细的介绍,现在我们来详细的说说 1.什么是 ...

  7. python manager模块_Python 并发模块

    Python 并发模块 multiprocessing 介绍 multiprocessing 是一个用与 threading 模块相似API的支持产生进程的包. multiprocessing 包同时 ...

  8. [转载] python的系统模块_Python操作系统模块

    参考链接: 带有示例的Python中的OS模块 python的系统模块 Python OS module provides easy functions that allow us to intera ...

  9. python的系统模块_Python操作系统模块

    python的系统模块 Python OS module provides easy functions that allow us to interact and get Operating Sys ...

  10. python sys模块_Python sys模块

    python sys模块 Python sys module provides easy functions that allow us to interact with the interprete ...

最新文章

  1. 常用的shell脚本
  2. 一行代码搞定 Scrapy 随机 User-Agent 设置
  3. vue axios 跨域_SpringBoot+Vue从零开始搭建系统(三)前后端整合二
  4. jQuery实现下拉列表移动 效果
  5. JavaScript将成为浏览器战争的主战场
  6. 第五章 随机事件及其概率
  7. Python中操作myslq的方法
  8. c#委托和事件的介绍
  9. 世界顶级图表-华尔街日报配色方案详解
  10. 12月Java原生商城APP源码-完全开源
  11. matlab里wblrnd函数,matlab随机函数
  12. cloudcompare断面提取
  13. p2p与反p2p的博弈,一劳永逸真的不容易么
  14. Windows平台Qt添加OpenCV模块
  15. tradeblazer mysql_交易开拓者(TradeBlazer)上手指南
  16. Spring Cloud 基本理论概述
  17. T t与T t = T()的区别
  18. javascript,jQuery,vue的区别
  19. 【竞赛篇-新苗申报立项】浙江省新苗人才计划申报经验
  20. JavaMail怎样获取收件箱,发件箱,垃圾箱等等的全名

热门文章

  1. 2018年的AI/ML惊喜及预测19年的走势(二)
  2. 无需 Dockerfile 的镜像构建:BuildPack vs Dockerfile
  3. 对话阿里云:开源与自研如何共处?
  4. 带你从零入门 Serverless | 一文详解 Serverless 架构模式
  5. 华为发布基于自进化AI的HiSec Insight安全态势感知系统
  6. 从未如此简单:10分钟带你逆袭Kafka!
  7. 华为开发者大会上,鸿蒙问世、方舟编译器开源、还有 EMUI 10;壕置100万美元,苹果推出漏洞攻击报告赏金计划……...
  8. 你好,请查收这封元旦祝福,CSDN云计算改版啦!
  9. call() , apply() ,bind()的用法
  10. python 爬虫工具 butter_GitHub - TheButterflyOdor/proxy_pool: Python爬虫代理IP池(proxy pool)