在工作中遇到一个需求,需要用Python脚本读取一个13G的文件,把每行的记录写入redis。由于机器的内存只有8G,所以不能一次将磁盘上的文件全部读入内存,需要一行一行读取文件。Python按行读取文件主要是使用file.readline方法或者利用file对象的迭代器性质,而file.readlines方法则是一次把所有内容从磁盘读入内存。当内存足够时,file.readlines方法显然会更快,因为磁盘I/O次数更少。下面给出了三种遍历文件每行的方式
系统 2019-09-27 17:56:36 1965
使用列表List作为样本点表示的欧氏距离计算方法:importmath#计算两点之间的距离defeucliDist(A,B):returnmath.sqrt(sum([(a-b)**2for(a,b)inzip(A,B)]))X=[1,2,3,4]Y=[0,1,2,3]print(eucliDist(X,Y))使用np.array作为样本点表示的欧氏距离计算方法:importnumpyasnp#计算两点之间的距离defeucliDist(A,B):retu
系统 2019-09-27 17:56:21 1965
CSV数据格式如下所示:分类要求为:AAAI属于AI类,ICDM,SDM和KDD属于DM类,WWW属于NEW类上图所示第一列为名称,如何根据第一列的名称把前面的类别名称输出到第三列,实际效果为:如上图所示,第一列为名称,第三列为对应的类别名称,请给出python的实现代码答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问可以用pandas里面的map映射字典。In[1]:importpandasaspdIn[2]:df=pd.DataFrame
系统 2019-09-27 17:56:15 1965
最近在使用爬虫爬取数据时,经常会返回403代码,大致意思是该IP访问过于频繁,被限制访问。限制IP访问网站最常用的反爬手段了,其实破解也很容易,就是在爬取网站是使用代理即可,这个IP被限制了,就使用其他的IP。对于高大上的公司来说,他们基本都使用收费的代理,基本不会有什么问题,比较稳定。像我这样的矮矬穷,肯定是用不起收费的代理。一般都是使用国内免费的代理,网上也有很多提供免费的代理。很多人都是从网上爬取一批免费的代理IP,存放在存储媒介中,例如excel文
系统 2019-09-27 17:56:04 1965
首先在火狐浏览器上登录知乎,然后使用火狐浏览器插件Httpfox获取GET请求的Cookie,这里注意使用状态值为200(获取成功)的某次GET.将Cookies复制出来,注意这一行非常长,不要人为添加换行符。而且Cookie中使用了双引号,最后复制到代码里使用单引号包起来。使用下边代码检验是否是模拟了登录的用户的请求:importrequestsimportreheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.
系统 2019-09-27 17:55:03 1965
这是我使用python写的第一个类(也算是学习面向对象语言以来正式写的第一个解耦的类),记录下改进的过程。分析需求最初,因为使用time模块显示日期时,每次都要设置时间字符串的格式,挺麻烦,但还是忍了。后来,在处理多线程任务时需要实现定时控制的功能,更麻烦,终于决定自己做一个解决这些问题的通用代码(虽然网上有现成的模块,但亲手编写这部分代码正好能锻炼一下我的面向对象编程)。分析框架刚开始,我计划做一个模仿时钟的抽象类,让它独立运行在一个线程中,让它提供显示
系统 2019-09-27 17:54:34 1965
一、内置函数下面简单介绍几个:1.abs()求绝对值2.all()如果iterable的所有元素都为真(或者如果可迭代为空),则返回True3.any()如果iterable的任何元素为真,则返回True。如果iterable为空,则返回False4.callable()如果object参数出现可调,则返回True,否则返回False5.divmod()以两个(非复数)数字作为参数,并在使用整数除法时返回由商和余数组成的一对数字。对于混合操作数类型,二进制
系统 2019-09-27 17:54:34 1965
itchat模块官方参考文档:https://itchat.readthedocs.io/zh/latest/安装pipinstallitchat/pip3installitchat原理Python模仿网页版微信登陆,并且现有一套操作网页版微信的API,可以将你使用微信中产生的数据爬下来,并做出相应的处理。操作1.导入这套微信API的包itchatimportitchat2.模仿网页版微信登陆itchat.auto_login()3.使用相关函数找到相关微
系统 2019-09-27 17:54:06 1965
如下所示:>>>importnumpyasnp>>>a=np.array([[1,2,3],[3,1,2]])>>>b=np.array([[5,2,6],[5,1,2]])>>>aarray([[1,2,3],[3,1,2]])>>>barray([[5,2,6],[5,1,2]])>>>c=a+b>>>carray([[6,4,9],[8,2,4]])>>>c=(a+b)/2>>>carray([[3.,2.,4.5],[4.,1.,2.]])>>>以
系统 2019-09-27 17:52:56 1965
前言上项目的时候,遇见一次需求,需要把在线的其中一个collection里面的数据迁移到另外一个collection下,于是就百度了看到好多文章,其中大部分都是使用导入的方法,没有找到在线数据的迁移方法。于是写了python脚本,分享出来。思路:collection数据量比较大,所以一次性操作所有数据太大,于是分段执行操作。先分段按1000条数据量进行查询,处理成json数据把处理后的json数据发送到目的collection上即可实现:一、使用http的
系统 2019-09-27 17:52:33 1965