Python
阿智智
思考,思考,再思考!
展开
-
Pip与maven之比较
相同的是,若从国外镜像下载,则速度比较慢,而改为国内镜像则速度比较快。Python的pip较灵活些,若不指定版本,其下载包的最新版本。而pip无需构建,因为Python是解释型语言,没有编译的过程,代码可直接解释执行。那样的效果,其需将安装的所有依赖以脚本的形式写在一个可执行文件中,用操作系统运行该文件,即可配置好相应的所依赖的第3方包。二者在下载某个第3方包时,若需传递依赖,二者都会自动下载传递依赖,无需人工干预。我对Python和Java语言都非常热爱,在学习的过程中,写了上面肤浅的体会。原创 2024-03-11 21:26:43 · 685 阅读 · 0 评论 -
TypeError: strip_name() got an unexpected keyword argument ‘many‘问题的解决
在读一本书《Learn Python Programming》的第8章,按照书中的讲解先后安装了和pytest第三方库,j进而按照书中的代码结构和代码在ch08文件夹下运行,出现如下错误:从上面错误截图并结合代码可以分析出,该错误与我们所给出的测试数据无关,并且指向了api.py文件中的方法。原创 2024-01-18 09:39:52 · 1120 阅读 · 1 评论 -
子文件夹中一个.py文件导入父文件夹中某个.py文件
虽然各种Python语言编程书籍中一再强调,自从Python 3.3版本后,构建Python的Package结构,不用在每个文件夹下添加。上面这句话,仅仅针对的是从主文件夹中的主要.py来导入各个子文件夹的模块结构来说的。自己亲自试验,确实如此。但是,若想从子文件夹中的某个.py文件导入其父文件夹中某个.py文件,则需要在子文件夹和父文件夹中都要添加上文件。要解决上述错误,需要在ch08和tests文件夹下分别添加文件。这真是一个微小的使用Python的细节。等,则运行后会报错。原创 2024-01-17 22:37:41 · 1215 阅读 · 0 评论 -
Python装饰器(Decorator)函数如何保留被装饰函数的name和docstring
在利用 Python 书写装饰器模式时,Python对设计模式中的装饰器模式具有天然的支持。但要确保装饰器保留被装饰函数的name和docstring时,需要使用包中的。原创 2023-12-14 10:05:40 · 865 阅读 · 0 评论 -
在Python的虚拟环境中卸载eric6的方法
本文讲述了在Python虚拟环境中卸载eric6的方法,给出了相应的卸载命令。原创 2023-10-26 17:09:26 · 835 阅读 · 0 评论 -
Python中子文件夹中的.py文件引用父文件夹中的.py文件方法
文件夹结构描述文件夹结构是这样的:pythonWS2edCode│└───Chapter01│ │ advanced_link_crawler.py│ └───Chapter02 │ test_scrapers.py现在文件test_scrapers.py中需要:from Chapter01.advanced_link_crawler import download也就是说,要导入父文件夹下的某个module。此时,我们在路径pythonWS2edCode运行原创 2020-08-24 10:19:54 · 1704 阅读 · 0 评论 -
用于LaTeX Python代码展现的minted包的安装及运行该包时TeXworks编译命令的设置
目录1 介绍2 安装包minted的方法3 在Windows下配置TeXworks的针对minted包的编译指令4 minted包的运行示例1 介绍早有利于LaTeX\LaTeXLATEX排版Python代码的需求,前年我用过pythonhighlight1包,感觉字体、高亮色彩、代码行号显示等方面做的不符合我口味。昨天晚上,思前想去,还是要找一个Python代码展现质量更高的LaTeX\LaTeXLATEX包。我坚信一定有,至少要和书籍《Web Scraping with Python: Coll原创 2020-08-21 11:01:51 · 2362 阅读 · 2 评论 -
利用BeautifulSoup的find_all()函数查找某个标签且该标签某属性不出现
介绍HTML代码如下:<ul class="sf-r-list"> <li> <a href="/book/77" class="sc-list-cover fl"> <img class="ba_page_prvimg" onload="baImgCenter(this)" badt_outwidth="" src="https://wqxuetang.oss-cn-beijing.aliyuncs.com/cover/0/0/77/77.jpg!m"原创 2020-08-20 12:06:22 · 3539 阅读 · 1 评论 -
Scrapy-1-1-0rc3中的sel.xpath()已被Scrapy-2.3-0中的response.xpath()所替代
介绍最近看了些中英文的爬虫书,基本上都是2017年左右出版的,里面讲解的有关Scrapy的命令、代码等的用法已经运行不通了。我通过查询和阅读Scrapy-2.3-0的帮助文档,发现已经它们已经被新的命令所替代了。这说明Scrapy的版本更新比较快,并且接口的变动也比较快。其中,关于在Scrapy 1.1.0版本中,scrapy shell命令下,利用xpath()方法的接口发生了变化:#mermaid-svg-LSmLWubsLAmJ5mOq .label{font-family:'trebuchet原创 2020-08-19 11:27:33 · 274 阅读 · 0 评论 -
写CSS选择器时标签的class属性值中有空格的问题
1 问题描述HTML代码片段为:<div class="alert alert-warning"> 请至“随书下载”下载本书的示例程序。</div><div class="book-intro readmore"> 本书通过正在学习机器学习的程序员绫乃和她朋友美绪的对话,结合回归和分类的具体问题,逐步讲解了机器学习中实用的数学基础知识。其中,重点讲解了容易成为学习绊脚石的数学公式和符号。同时,还通过实际的Python 编程讲解了数学公式的应用,进而加深读原创 2020-08-18 08:07:56 · 4943 阅读 · 2 评论 -
BeautifulSoup.select(selector)函数中参数的选择表达式的书写方法(CSS选择器)二则
1 介绍使用BeautifulSoup从网页中抓取自己需要的信息,有两种常用的方法:使用 find()或者find_all()方法,很方便,很容易直接定位到自己所需要的信息;使用select(selector)方法,能起到与方法1同样的效果。方法2相比较方法1,有一个优点是:当我们写一个通用的爬虫类时,亦即该类爬虫方法代码与网页中的具体的标签无关(同一内容在不同的网页中具体的标签是千变万化的),允许我们将不同网页的信息定位抽象出来(亦即,允许我们书写一个CSS选择器)。下面给出两个书写CSS选原创 2020-08-17 21:33:58 · 2213 阅读 · 1 评论 -
爬取新闻网页中的<P>的匹配问题
问题描述爬取新闻网页,HTML代码如下:<div id=ozoom style="ZOOM: 100%"><founder-content><P> 上图:1953年3月11日,我国第一座自动化的炼铁炉——鞍山钢铁公司第8号炼铁炉开始出铁了。铁水经过化验,质量很好。这是开始出铁时,冶金部门的领导同志、苏联专家等正在参观的情形。</P>....看到上述新闻主体内容写入到<P></P>中,我在爬虫代码中匹配时写的仍然是大写原创 2020-08-17 12:26:49 · 658 阅读 · 1 评论 -
爬取网页中链接的正则表达式不匹配“.”的问题
问题描述要爬虫wiki内容描述页的链接,确保这些链接指向新的内容页,为此利用正则表达式,代码如下:# webCrawler.py# date: 2020-08-15from urllib.request import urlopenfrom bs4 import BeautifulSoupimport re # Because Wikipedia cann't be open, we use the following website # alternatives.html = url原创 2020-08-15 12:28:02 · 366 阅读 · 0 评论 -
Python中利用BeautifulSoup4反查包含文本内容的标签
目录1 问题引出2 问题分析3 解决方案1 问题引出编写爬取Amazon服装行业数据时,遇到一个问题:根据文本内容Next反查包含它的父标签。请看下面HTML片段<li class="a-last"><a href="/s?k=red+tshirt&i=fashion-mens&page=2&qid=1588904638&a...原创 2020-05-08 16:38:41 · 2370 阅读 · 3 评论 -
阅读《Practical web scraping for data science》p161的代码之 Cannot operate on a closed database错误
问题描述最近阅读了一本爬虫方面的书1,按照书上161页的代码原封不动的敲到电脑中,编写一个爬虫蜘蛛,但运行以后出现以下错误:Error closing cursorTraceback (most recent call last):File “E:\StudyCard\BigData\WebScrape\PWSfDScode.pwsenv\lib\site-packages\sqlalc...原创 2020-04-24 12:30:17 · 674 阅读 · 0 评论 -
Python的包tkinter中的canvas.winfo_height()或canvas.winfo_width()返回值1的解决
目录问题描述解决方案问题描述下述代码:from tkinter import *import randomimport timeclass SnakeHead: def __init__(self,canvas,color): self.canvas = canvas self.id = canvas.create_oval(10,10,25...原创 2020-04-10 08:20:59 · 3313 阅读 · 2 评论 -
UnicodeEncodeError: 'gbk' codec can't encode character '\xc4' 这类问题之解决
问题描述在看书籍《Mark Lutz. Learning Python. 5ed. O’Reilly 2013》的106页的一个例子时,如下:>>> print('sp\xc4m')在我的win7电脑的cmd console中以交互式的方式运行,不仅得不到与书中相同的结果,反而得到以下错误: UnicodeEncodeError: ‘gbk’ codec can’t encode charact原创 2017-09-13 21:05:11 · 1842 阅读 · 0 评论 -
Jupyter notebook 转pdf时出现的一个错误(只出现前4页)及原因分析
文章目录问题描述原因分析解决方案问题描述最近迷上了利用Jupyter notebook 为工具学习有关Python语言方面的知识。遇到该错误纯粹是个偶然,这应该算是Jupyter notebook的一个bug。问题的出现是这样的:我读到书籍《Automate the boring stuff with Python》1的170页的时候,有这样一句话:Adding parentheses ...原创 2018-11-07 20:51:32 · 2184 阅读 · 0 评论 -
利用Python requests库从网上下载txt文件时多出一个CR的处理
问题描述读1 的Reading word lists小节时,发现需要从thinkpython2/code/words.txt上下载words.txt文件。我不想利用复制-粘贴的方法构造该文件,想到之前学过的爬虫技术,于是写下如下代码:import requestsr = requests.get('http://greenteapress.com/thinkpython2/code/wor...原创 2018-11-13 13:29:51 · 1480 阅读 · 0 评论 -
在Windows下使用shutil时书籍《Python GUI Programming Cookbook Second Edition》中代码错误及修正
问题描述在读书籍《Python GUI Programming Cookbook Second Edition》的184页时,有一个利用open file dialog选中文件并复制文件的例子。但我运行该程序时始终无法成功复制文件。我使用的是Anaconda3的Python 3.6.3、Windows7系统运行环境。解决方法将书上相关错误代码改正,同时在目标文件夹地址栏输入完整地址即可。以下...原创 2018-11-30 11:38:00 · 476 阅读 · 0 评论 -
将Ipython notebook转为pdf
本来这不应该成为一个问题,因为在jupyter的file菜单下面有download as pdf (via latex)菜单项目,但是当你点了该菜单项后,会出现一个错误的网页提示: nbconvert failed: Pandoc wasn’t found. Please check that pandoc is installed: http://johnmacfarlane.ne原创 2015-10-13 11:21:40 · 12713 阅读 · 0 评论 -
使用Py2Exe for Python3创建自己的exe程序
最近使用Python 3.5写了一个GUI小程序,于是想将该写好的程序发布成一个exe文件,供自己单独使用。至于通过安装的方式使用该程序,我没有探索,感兴趣的读者可以自己摸索。1 介绍我使用的开发环境是python3.4(实际上我是在另一个64位的台式机上,用python3.5开发的,不过代码不用任何修改即可在python3.4上运行),该环境由Anaconda提供。我开发的小GUI软件为merge原创 2016-12-11 14:53:01 · 16262 阅读 · 0 评论 -
Ubuntu14.04中安装Anaconda2-4.0.0的方法
1 介绍我虚拟机Ubuntu14.04上的Python已经存在了两个版本,一个是python 2.7,一个是Python 3.4。想在它上面安装Anaconda,但又有所顾虑。我先想到的是,先卸载Ubuntu自带的Python,这是大多数人的想法。后来在网上搜了搜解决方案,不是这样的。许多人由于卸载了自带的Python而造成了Ubuntu的系统崩溃,浪费自己的大量时间不说,更是给自己带来了不好的心情原创 2016-04-27 17:42:16 · 10181 阅读 · 0 评论 -
python2.7画图保存为eps格式出错,而python3.4无错--终极原因
今天画图时遇到一个非常奇怪的现象,同样的代码,在Python2.7中运行后,保存为eps时出现以下错误: 但当我运行画图代码在python3.4中时,就可以成功地保存为eps文件。奇怪的问题来了,当我返回到python2.7环境中再运行同样的画图代码时,可顺利的保存为eps文件了。这真是让人不可思议。有大牛给一下解释吗?接着呢,我再一次在python2.7中运行同样的代码,还是出错。真是无语了。请原创 2016-03-23 16:40:24 · 5555 阅读 · 4 评论 -
Python中pprint只有在足够长度的内容下才出效果
print是通常传统的打印输出。为了弥补print的显示方面的不美观,python推出了pprint,可是只有当显示的内容足够多时,它才会美观化显示内容。刚开始,我为了实验该命令,采用了很短的显示内容,可是不能看到效果。当我在字典中增加一个items时,才看出了pprint的效果。下图表示,当内容少时,不出效果: 下图是,加了一个item后,出现了效果:原创 2016-01-15 19:18:51 · 1201 阅读 · 0 评论 -
Python3利用PyMySql连接MySQL数据库
由于一些书籍和博客讲解的方法不正确,在此给出正确的连接方法。我的环境是:Ubuntu 14.04Python 3.4.0安装sudo pip3 install PyMySQL连接import pymysqlconn = pymysql.connect(host='127.0.0.1',port=3306, user='root', passwd=原创 2015-10-16 09:23:30 · 6478 阅读 · 2 评论 -
Ubuntu系统上Python2和Python3共存时安装BeautifulSoup4
问题我的电脑安装的系统为Ubuntu 14.04,同时安装有python 2.7.6和python 3.4.0,我需要在python 3.4.0上面安装BeautifulSoup4,而直接采用下面命令:sudo apt-get install python-bs4则将BeautifulSoup4安装在了python 2.7.6上面。采用什么方法将其安装在与python2.7.6共存的python 3原创 2015-10-15 00:02:20 · 4781 阅读 · 0 评论 -
在Anaconda中安装python包seaborn
1 问题产生今天在看一个Ipython notebook的资料,题目是《Introduction to Scientific Computing with IPython》,我上来就开始运行下面代码,可是出现了错误的提示: 提示说找不到包seaborn。我之前安装的是Anaconda,将许多包已经打包安装在一起,没想到没有捎带将seaborn安装上。我又找了找Anaconda的安装路径,确认没原创 2015-10-13 20:26:12 · 42390 阅读 · 0 评论 -
用Python写了一个数据格式转换小程序
1 为什么需要这个转换程序数据量大到了一定程度,用手工转换费时费力,在这种情况下,必须依靠程序来快速地解决,以便于高效率的工作。显然,当数据量只有2个短行的时候,是不需要写个专门的程序处理的。2 问题描述转换前的数据格式是这样的,将该内容命名为TestDataBeforeTransfer.txt: method: algorithm 1 20: 4 0.835 5 0.508原创 2015-11-10 09:48:09 · 2586 阅读 · 0 评论 -
CountVectorizer.transform出现的一个错误的解决
问题该错误的出现还是跟我上一个博客中讲述的问题有关,因为我将CountVectorizer的参数input设置为file,所以在本博客出现问题的代码中,因为给它的是一个字符串列表,所以就会出现错误。先看出现问题的代码:new_post = ['imaging databases']new_post_vec = vectorizer.transform(new_post)print(new_pos原创 2015-10-21 19:34:44 · 4811 阅读 · 0 评论 -
使用vectorizer.fit_transform时出现AttributeError: 'file' object has no attribute 'lower'
问题最近在读书《Building Machine Learning Systems with Python》1第一版,发现其中的一个代码错误, AttributeError: ‘file’ object has no attribute ‘lower’产生该错误的代码为:import osos.listdir('./data/toy/')posts = [open(os.path.join原创 2015-10-21 11:53:23 · 9474 阅读 · 0 评论 -
利用Python的科学计算包scipy画Quantile-Quantile图
scipy包的画图功能非常强大,画出来的图形能够存为各种各样的格式,方便用户导入到各种文档中去。本文主要的讲解的是采用什么命令来画Quantile-Quantile图,以及画出来的图形如何保存为图片格式。当然的一个前提是你已经设置好了scipy的python环境。 画图命令如下:import pylabimport scipy.stats as stats#generate summary s原创 2015-09-28 17:29:27 · 6232 阅读 · 0 评论 -
Anaconda中安装python3.4环境
最近在看一些Python方面的英文书籍,发现有些书籍是针对Python3版本讲解的。我的Win7电脑上安装了虚拟机,上面有Ubuntu 14.04,我在其中安装了Python3,但是每次启动虚拟机总是感觉麻烦,所以,我决定在Win7系统上再安装一个Python3。我原本使用的是Anaconda套件,默认安装的是python 2.7。我找到了一个解决方案,利用Anaconda提供的命令可以在原来的基础原创 2016-01-24 15:49:37 · 15008 阅读 · 3 评论 -
Python3中重新加载一个新的更正的代码
在Python的一个session中,我们先前已经导入了一个package,但是由于各种各样的原因,我们会改变或者完善package中的代码,这时,我们没有必要退出该session,重新导入该包,因为我们建立的许多变量都会清空。这里,我们讲解一个不退出session重新加载该包的方法:方法注意,本文指的是python3版本。比如,我们导入了包nester中的方法print_lol,如下图: 现原创 2016-01-24 20:01:03 · 2792 阅读 · 1 评论 -
惊喜Python 3.3后的pydoc功能
介绍在学习任何一门语言的时候,我们都离不开参考资料、帮助文档,因为现在语言发展的越来越完善,引进的built-in命令越来越多,要想把它们全部记忆是非常不可能的事情。开发人员往往会集中在某个领域,对该领域中的语言语法细节也许擅长,但偶尔也需要使用其他领域的语法细节,这时就需要参考资料了。现在的搜索引擎这么发达,为什么还要使用Python自带的帮助系统呢?因为:1)利用搜索引擎搜出的结果往往太宽泛,不原创 2016-01-27 10:59:21 · 6624 阅读 · 0 评论 -
Python中closure和generator的定义和使用 (兼谈yield命令)
通常我们都会对大学课程里开设的语言,例如C++、Java等,比较熟悉,而当我们转向学习新的语言时往往会遇到一些新的概念和语言的新用法。这时以前语言中的一些概念会干扰我们对新概念的理解。本文,我要讲的是Python语言中的closure和generator的定义和使用,以方便Python初学者快速理解二者的含义。这两个概念往往是Python初学者感到陌生、困难和不容易理解的。注意:本文中运行的程序基于原创 2016-01-15 11:53:35 · 1377 阅读 · 0 评论 -
Python第三方包(package)的使用
1 引言这里指的第三方包与其他语言中第三方包的含义一致。但要注意:在Python中package与module的区别,前者指的是带有文件夹结构的文件的集合,后者仅仅指的是一个python文件。在我的博文里,已多次讲解了多种不同类型语言的第三方包的使用方法,包括Matlab、C++、R等,总结起来,有两种使用第三方包的方法:直接安装第三方包,使用时直接用即可。不同语言的安装方法不同,不同的IDE的设原创 2016-01-29 11:47:51 · 4295 阅读 · 0 评论 -
建立Scrapy项目unicodeDecodeError_ascii错误的解决 (2014-10-22)
错误描述 UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xb0 in position 1: ordinal not in range(128)运行第一个Scrapy项目就报错,真是命运多舛。解决方案应该是出了编码问题,谷歌了一下找到了解决方案: 在python的Lib\site-packages文件夹下新建一个sitecustom原创 2016-01-29 11:03:11 · 2009 阅读 · 0 评论 -
matplotlib中legend位置调整
在画一些曲线图 (line charts) 时,常常会出现多条曲线同时画在一张图上面,这时候就需要对不同的曲线进行不同的标注,以使读者能够清晰地知道每条曲线代表的含义。当你画很少的几条曲线时,这时画图命令中自动产生的legend能够基本满足你的需要,此时,你不需要做什么;但当你将很多个曲线画在一张图上时,自动产生的legend矩形框往往会覆盖住已经画出来的曲线,很不美观,这时你就需要写专门的代码对l原创 2015-11-08 16:39:27 · 52611 阅读 · 1 评论 -
How to use urllib2 in Python
OverviewWhile the title of this posts says "Urllib2", we are going to show someexamples where you use urllib, since they are often used together. This is going to be an introduction post of urll转载 2014-10-22 09:33:29 · 887 阅读 · 0 评论