Cygwin系列(十三):折腾X

本文共2000余字,预计阅读时间8分钟,本文同步发布于知乎专栏微信公众号平台。
关注学习了解更多的Cygwin、Linux技术。

本篇因各种各样的事情拖了好久。

大多数情况下,我们用Linux系统,是为了发挥命令行程序高效的威力,通过终端远程连接过去,一个黑框框里干完所有的活。但是,偶尔也需要运行一下图形界面程序,比如Web浏览器、Oracle安装程序等。而Linux系统主机通常做服务用,不会在图形支持方面堆很高的配置,这时我们可以利用X11的特性,在远端(Linux主机)运行X Client,但让安装了X Server的本地主机(如Windows主机)负责显示程序界面和交互。

阅读全文

WSLg:为WSL增光添彩

本文共1800余字,预计阅读时间6分钟,本文同步发布于知乎专栏微信公众号平台。
关注学习了解更多的Cygwin、Linux技术。

2021年微软的build大会没有刻意抢Google IO 2021之前,这一次微软继续带来了Visual Studio、Teams、.NET、VS Code、MAUI等一系列新内容,不忘践行“Microsoft ❤ Developer”、“Microsoft ❤ Linux”,还带来WSLg

阅读全文

Python自动操作GUI神器PyAutoGUI

本文共3500余字,预计阅读时间12分钟,本文同步发布于知乎专栏和微信公众号平台。
关注学习了解更多的Cygwin、Linux、Python技术。

日常使用计算机,命令行程序可以说是为批量操作文件而生,但作为普通用户,最多的还是通过鼠标键盘操作形形色色的图形界面程序。试想下面一个场景:有成千上万个文件,都需要通过图形界面进行同样的一套编辑、保存工作,靠手工一遍一遍地重复做,累死人不说,时间久了必然出现错误,作为程序猿,怎么能忍重复3次以上的工作,必须利用程序自动化。要想图形界面也能像命令行程序那样精确控制,就需要GUI自动化工具了。不得不赞Python生态之丰富,GUI自动化自动化工具也有多种库可选,比如Windows平台的pywin32,以及本文主角——跨平台的PyAutoGUI。

阅读全文

Cygwin系列(十二):了解X

本文共4500余字,预计阅读时间14分钟,本文同步发布于知乎(账号silaoA)和微信公众号平台(账号伪码人)。
关注学习了解更多的Cygwin、Linux技术。

前面连续多篇折腾了终端和命令行,本篇先初步了解X,并敬请期待下一篇:在Windows上折腾X。

阅读全文

Cygwin系列(十一):折腾终端2

本文共2500余字,预计阅读时间8分钟,本文同步发布于知乎(账号silaoA)和微信公众号平台(账号伪码人)。
关注学习了解更多的Cygwin、Linux技术。

本文承接前篇 Cygwin系列(十):折腾终端1,继续深度扒终端。既然Windows Console与UNIX/Linux上的pty机制完全不同,要让基于不同机制的命令行程序和终端配合起来,颇费周章。又双㕛叒叕祭出David Wheeler大神的著名论断:

All problems in computer science can be solved by another level of indirection(计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决)。

也就是说,解决办法无非是在已有条件下继续打造“中间层”,而Cygwin这个中间层试图直接补齐Windows API和UNIX/Linux API之间的差异,显得有点“重量”。

阅读全文

Cygwin系列(十):折腾终端1

本文共5200余字,预计阅读时间16分钟,本文同步发布于知乎(账号silaoA)和微信公众号平台(账号伪码人)。
关注学习了解更多的Cygwin、Linux技术。

关于终端的概念,已在 Linux Cygwin知识库(一):一文搞清控制台、终端、shell概念 中论述。UNIX/Linux系统对命令行有着天然的支持,Windows对命令行生态却不怎么重视,本着死磕自己娱乐大家的精神,深度扒一扒命令行生态中的重要元素——终端。

阅读全文

Python操作Excel文件(3):优雅干将openpyxl

本文共4000余字,预计阅读时间16分钟,本文同步发布于知乎专栏和微信公众号平台。
关注学习了解更多的Cygwin、Linux、Python技术。

openpyxl诞生于Python生态中缺乏原生读写Office Open XML格式文件(也就是xlsx格式)的背景下,由一群志愿者在业余时间开发维护,项目地址 http://bitbucket.org/openpyxl/openpyxl。相较pyexcelxlrd/xlwt/xlutilsopenpyxl对Excel的功能支持更加丰富,同时在实现上又十分优雅,操作逻辑与直接用Excel软件接近,运行效率也很高,堪称Excel文件操作的优雅干将。
本文所用openpyxl版本为3.0,旧版本可能部分API有所不同。

阅读全文

Python操作Excel文件(2):中规中矩三兄弟xlrd、xlwt和xlutils

本文共3000余字,预计阅读时间14分钟,本文同步发布于知乎(账号silaoA)和微信公众号平台(账号伪码人)。
关注学习了解更多的Cygwin、Linux、Python等技术。

xlrdxlwtxlutilsSimplistix公司开发,原网站内容基本都清空了,项目迁移到http://www.python-excel.org,并在GitHub开源,见https://github.com/python-excel。三兄弟在操作Excel方面表现中规中矩,能够覆盖大部分需求,也是本人最先熟悉的库。三兄弟一起配合才能比较方便地实现Excel文件的读写,xlutils不是必需,但额外提供了一些简化操作的工具函数。

阅读全文

Python操作Excel文件(1):花式大师pyexcel

pyexcel是开源的Excel操作库,项目地址为https://github.com/pyexcel/pyexcel。它包装了一套API用于读和写文件数据,这一套API接受的参数包括2个关键字集合,一个指定数据来源,另一个指定目的文件,每个集合里都有很多关键字参数控制读写细节。pyexcel包还实现了工作簿、表单类型,用于访问、操作和保存数据,读写操作十分花式。

本文评述pyexcel库用于读写Excel文件的方法,并做总结。

阅读全文

Python操作Excel文件(0):盘点

python的一大优势是生态丰富,各种想要的库都有人做好了,省掉造轮子的成本。对于Excel文件操作,也不例外。在Python中操作Excel有2条思路。

  1. 使用pywin32,内含win32com等多个包,使用微软独门的COM接口技术去操控系统中的Excel软件。沿着这条思路,好处是除了Excel软件,可以操控系统中任意支持COM接口的软件,微软全家桶是必然在列滴,其他就难说了;劣势就是COM接口技术比较老旧了,仅在Windows平台中使用,而且系统中必须已经安装好Excel软件。
  2. 使用读写表格文件的库,如xlrd/xlwt/xlutilsopenpyxlpyexcelXlsxWriter等,这些库封装了对Excel文件的读写操作的函数。
    在Python中操作Excel文件

本文对第2条思路中常见的库进行简单评述与总结。

阅读全文