十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在ubuntu中首先执行以下命令安装convert命令:
成都创新互联服务项目包括阿里地区网站建设、阿里地区网站制作、阿里地区网页制作以及阿里地区网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阿里地区网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阿里地区省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
sudo apt-get -y install imagemagick
然后输入密码即可安装。
安装完毕后执行以下命令看是否安装成功:
convert -version
然后执行以下命令测试(我以1.jpg图片为例):
convert 1.jpg -print "Size: %wx%h\n" /dev/null
你需要使用sys.stdin.read来获取管道的输入。
看下图的代码。之所以没有写出文本,是希望读者能自己写一遍,而不是复制粘贴。自己动手写一遍必看10遍还更容易记住。
2
然后用echo命令把输出传给这个脚本。
你可能会问为什么多了一个空行。这是因为echo本身会给文本加换行符,而print函数又加了一个。给print一个end=""参数就可以了。
即,print("来自Python的:", sys.stdin.read(), end="")
END
实战演练
假如你想要一个脚本来给输出的行数计数,怎么写?
例如: ls | count
就把ls的个数显示出来,你就知道有多少个文件或文件夹了。
代码如下图:
主要看第6、7行:
bi = sys.stdin.buffer.read()
由于考虑到文件名的编码可能不是utf-8,所以直接read可能出现乱码(准确地说,不是乱码,而是UnicodeDecodeError,程序根本运行不下去),所以使用了buffer,它的含义是以字节形式读取输出,而不是字符。
li = bi.split(b"\n")[:-1]
以b“\n”为分隔符分了之后,最后一项的空字节,所以要切掉最后一项。
不要担心没有分成几行的ls的输出,经过测试,即使输出是一行,它们之间也是用b"\n"分割的。
3
把脚本改名为 count,放入 ~/bin 后测试一下。
你要在你编写程序中实现画图功能的话,在linux下一般是基于xlib和opengl的,窗口化部分则是交给qt或gtk
嫌麻烦的话,可以用glut,这个是基于opengl的功能包,功能较简单,适合拿来玩熟原理
举个例子吧:
离散和线性图
第一个脚本,script1.py 完成如下任务:
创建3个数据集(xData,yData1和yData2)
创建一个宽8英寸、高6英寸的图(赋值1)
设置图画的标题、x轴标签、y轴标签(字号均为14)
绘制第一个数据集:yData1为xData数据集的函数,用圆点标识的离散蓝线,标识为"y1 data"
绘制第二个数据集:yData2为xData数据集的函数,采用红实线,标识为"y2 data"
把图例放置在图的左上角
保存图片为PNG格式文件
script1.py的内容如下:
import numpy as np
import matplotlib.pyplot as plt
xData = np.arange(0,10,1)
yData1 = xData.__pow__(2.0)
yData2 = np.arange(15,61,5)
plt.figure(num=1, figsize=(8,6))
plt.title('Plot 1', size=14)
plt.xlabel('x-axis', size=14)
plt.ylabel('y-axis', size=14)
plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data')
plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data')
plt.legend(loc='upper left')
plt.savefig('images/plot1.png', format='png')
所画之图如下: