本文不涉及Python基本语法,主要是以下三个项目涉及的知识点。
- 武汉2022年天气数据可视化 - python爬数据生成csv, js读取csv数据,并用Echarts可视化的网页
- Hexo工具_v1.exe - pyinstaller打包由Tkinter编写带GUI的Windows小程序
- http_server.py - 简易的本地局域网脚本,类似于FTP下载的界面
Python基础
Python环境安装与简单代码运行 https://www.cnblogs.com/minuhy/p/16871752.html
Python 3 教程 https://www.runoob.com/python3/python3-tutorial.html
廖雪峰的官方网站-Python教程 https://www.liaoxuefeng.com/wiki/1016959663602400
PyPI 镜像 https://developer.aliyun.com/mirror/pypi https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
配置镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
js读取csv数据
武汉2022年天气数据可视化网址:https://gitxieada.github.io/Demo/weather/index.html
参考:
js读取csv数据,并用Echarts展示 https://glwhappen.github.io/post/js-echarts-csv/
用d3js读取包含中文的csv数据,然后用Echarts将数据可视化显示。
或使用papaparse读取csv(JavaScript浏览器内CSV(或分隔文本)解析器) https://www.npmjs.com/package/papaparse
Tkinter
Tkinter是Python的标准GUI库,Python使用Tkinter可以快速创建GUI应用程序。因为Tkinter内置在Python的安装包中,所以只要安装Python之后就能导入Tkinter库。另外,开发工具IDLE也是基于Tkinter编写而成的,对于简单的图形界面,Tkinter能够应付自如。
显示一个 tkinter 测试窗口,看是否能够正常运行,以及显示版本号。
命令行执行 python -m tkinter
Tkinter grid() 布局:https://www.cnblogs.com/emanlee/p/15340537.html
使用pyinstaller打包生成exe
在命令提示符中输入 pip install pyinstaller
进入工程目录下输入: pyinstaller -F -w hexo_tool.py
-F 生成单独的可执行文件 -w 去掉运行时的黑色命令行窗口(一般调试时可以看到窗口的输出)
就可以在生成的dist文件夹下找到hexo_tool.exe啦
参考:
upx+pyinstaller压缩python文件 https://blog.csdn.net/wbl320/article/details/107333656
pyinstaller打包成exe(upx压缩)https://www.cnblogs.com/lin961234478/articles/16302367.html
使用PyInstaller打包自己写好的代码 https://www.cnblogs.com/minuhy/p/17747925.html
常用的模块
csv
参考:
Python3读写CSV文件 https://www.cnblogs.com/superhin/p/python-csv.html
CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型)。
Python3操作CSV文件使用自带的csv包
lxml
参考:
数据提取-XPath语法和lxml模块 https://www.jianshu.com/p/a0ecd8c29e52
爬虫之lxml - etree - xpath的使用 https://www.cnblogs.com/Treasuremy/p/10444490.html
lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。可以利用学习的XPath语法,来快速的定位特定元素以及节点信息。
|
|
os.system 与 subprocess
参考:
Python调用外部程序——os.system()和subprocess.call() https://www.cnblogs.com/songwenlong/p/5940155.html
Python 通过系统默认浏览器打开网址链接 https://manual.toulan.fun/posts/python-open-url-with-system-default-browser/
subprocess Python执行系统命令最优选模块 https://www.cnblogs.com/goldsunshine/p/17558075.html
python执行系统命令的方法:os.system(), os.popen(), subprocess.Popen() https://www.cnblogs.com/superbaby11/p/15560994.html
os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功
subprocess.run()是Python 3.5及更高版本引入的函数,用于运行外部命令并等待其完成。
popen是一个功能更强大的方法,而run是它的一个简化版。如果run函数不能满足功能的要求,可以尝试功能更多的popen方法。
除了方法的多少之外,run和popen最大的区别在于:run方法是阻塞调用,会一直等待命令执行完成或失败;popen是非阻塞调用,执行之后立刻返回,结果通过返回对象获取。
http.server
在本地创建一个文件夹作为Server目录,目录中放入需要共享的文件或目录, 然后通过cmd命令行在此目录下输入命令python -m http.server
搭一个简易的本地局域网。
执行上面的命令就会在当前目录下启动一个文件下载服务器,默认打开8000端口。完成以后,只需要将 IP和端口告诉同事,让同事自己去操作即可,非常方便高效。
使用浏览器访问Python启动的下载服务器,可以看到一个类似于FTP下载的界面,这个时候单击文件下载即可。通过这种方式传输文件,可以降低大家的沟通成本,提高文件传输的效率。
如果当前目录下存在一个名为index.html的文件,则默认显示该文件的内容。如果当前目录下不存在这样一个文 件,则默认显示当前目录下的文件列表,也就是大家看到的下载服务器。
os.popen
os.popen()方法不仅执行命令而且返回执行后的信息对象(常用于需要获取执行命令后的返回信息),是通过一个管道文件将结果返回。通过 os.popen() 返回的是 file read 的对象。
Python获取本机IP地址 https://www.zhihu.com/question/49036683
获取正在上网所使用的本机IP,通过route命令可以得到:
Windows下用[a for a in os.popen('route print').readlines() if ' 0.0.0.0 ' in a][0].split()[-2]
Linux下用[a for a in os.popen('/sbin/route').readlines() if 'default' in a][0].split()[1]
selenium
版本:pip install beautifulsoup4
pip install selenium==3.14.0
selenium 4.6 及之后版本内置了 selenium-manager 可以自动管理浏览器驱动。
我的版本是3.14.0,还是需要安装geckodriver
注意:firefox路径添加环境变量
https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
GeckoDriver用于驱动Firefox,在这之前请确保已经正确安装好了Firefox浏览器并可以正常运行。
参考:
快速入门 Python 爬虫:BeautifulSoup 和 Selenium https://jimzhang.me/beautifulsoup-and-selenium
GeckoDriver+Selenium+Python的安装和使用https://www.cnblogs.com/v5captain/p/13167413.html
GeckoDriver的安装和使用https://www.cnblogs.com/Sabre/p/12310519.html
requests
参考:
requests Python中最好用的网络请求工具 基础速记+最佳实践 https://www.cnblogs.com/goldsunshine/p/17501390.html
requests 是Python编写的第三方库,它基于python自带网络库urllib3封装完成。
pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
|
|
多线程请求,在多线程请求时如果线程超过10个,比较推荐使用线程池的技术,能够有效减少线程的创建耗时。
os.path
参考:
Python 中 OS 模块获取文件/目录路径方法 https://www.cnblogs.com/shouhu/p/12149553.html
os.path.abspath(__file__)
:获取当前脚本的完整路径
注意:只有当在脚本中执行的时候,os.path.abspath(__file__)
才会起作用,因为该命令是获取的当前执行脚本的完整路径,如果在交互模式或者terminate 终端中运行会报没有file这个错误os.path.dirname(os.path.abspath(__file__))
:获取当前文件所在目录的完整路径
os.kill
os.kill() 方法用于向某个进程发送一个信号,以通知该进程执行某种操作。该方法需要两个参数:第一个参数为进程 ID,第二个参数为信号值
常用的信号类型:
- signal.SIGTERM:请求进程终止运行,也可以称为默认终止信号。
- signal.SIGKILL:立即终止进程的运行,无法被捕获或忽略。
- signal.SIGINT:相当于键盘上 Ctrl+C 的中断信号,通常用于请求应用程序退出。
- signal.SIGSTOP:请求进程暂停运行,可以被恢复(通过 SIGCONT)。
|
|