今天用Python提取了Linux内核源代码的目录树结构,没有怎么写过脚本程序,我居然折腾了2个小时,先是如何枚举出给定目录下的所有文件和文件夹,os.walk可以实现列举,但是os.walk是只给出目录名和文件名,而没有绝对路径。使用os.path.listdir可以达到这个目的,然后是创建目录,由于当目录存在是会提示创建失败的错误,所以我先想删除所有目录,然后再创建,但是发现还是有问题,最好还是使用判断如果不存在才创建目录,存在时就不创建,贴下代码:#
系统 2019-09-27 17:38:11 2101
想必很多初次接触python都会见到这样一个语句,if__name__=="__main__":那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是:1.python文件的后缀为.py;2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能
系统 2019-09-27 17:38:10 2101
集合特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。定义set()->newemptysetobjectset(iterable)->newsetobjects={0}应用:去重>>>lst1=[1,1,2,2,3,4,2]>>>list(set(lst1))[1,2,3,4]常用操作集合支持一系列标准操作,包括并集|、交集&、差集-和对称差集^子集<<=及超集>>=
系统 2019-09-27 17:37:45 2101
一般说来,你会把模板以文件的方式存储在文件系统中,但是你也可以使用自定义的templateloaders从其他来源加载模板。Django有两种方法加载模板django.template.loader.get_template(template_name):get_template根据给定的模板名称返回一个已编译的模板(一个Template对象)。如果模板不存在,就触发TemplateDoesNotExist的异常。django.template.loade
系统 2019-09-27 17:37:43 2101
第一篇markdown编辑器001Markdown基本语法第二篇Python集成环境和解释器002Python解释器安装003Python解释器源修改004pip的使用005Python的IDE之Pycharm的使用006Python的IDE之Jupyter的使用第三篇Python基础007常量008变量009Python变量内存管理010各类赋值方式011注释012数据类型基础013数据类型:数字类型014数据类型:字符串类型015数据类型:列表类型01
系统 2019-09-27 17:56:43 2100
一个简单的实现classNaiveFilter():'''FilterMessagesfromkeywordsverysimplefilterimplementation>>>f=NaiveFilter()>>>f.add("sexy")>>>f.filter("hellosexybaby")hello****baby'''def__init__(self):self.keywords=set([])defparse(self,path):forkeywo
系统 2019-09-27 17:56:10 2100
锁在使用用的过程中需要导入threading模块的Lock类使用锁:当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引入互斥锁。互斥锁为资源引入一个状态:锁定/非锁定。锁的语法创建锁、锁定锁、释放锁fromthreadingimportLock#创建锁mutex=Lock()#获取锁(上锁)mutex.acquire()#释放锁(解锁)mutex.release()在锁定锁的过程中ac
系统 2019-09-27 17:55:04 2100
前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识,用来解决简单的贴吧下载,绩点运算自然不在话下。不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点。于是乎,爬虫框架Scrapy就这样出场了!Scrapy=Scrach+Python,Scrach这个单词是抓取的意思,Scrapy的官网地址:点我点我。那么下面来简单的演示一下Scrapy的安装流程。具体流程参照://www.jb51.net/article/48607.htm
系统 2019-09-27 17:54:46 2100
什么是可变/不可变对象不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变。Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。
系统 2019-09-27 17:54:37 2100
关卡二:1.练习题1面向对象的理解要求:在类内定义一个可以重新设置私有属性name的函数条件为字符串长度小于10,才可以修改.答:defSetName(self,newname):iflen(newname)<10:self.__name=newnameelse:print("error:名字太长!")在创建一个类之后需要调用什么函数?答:应调用__del__()函数.del()方法是手动调用还是类默认调用?答:手动调用如何访问对象的属性?答:使用(.)来
系统 2019-09-27 17:54:18 2100
Matrix是Array的一个小的分支,包含于Array。所以matrix拥有array的所有特性。但在数组乘和矩阵乘时,两者各有不同,如果a和b是两个matrices,那么a*b,就是矩阵积如果a,b是数组的话,则a*b是数组的运算1.对数组的操作>>>importnumpyasnp>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])>>>aarray([[1,2,3],[4,5,6],[7,8,9]])>>>b=a.copy
系统 2019-09-27 17:54:15 2100
依赖包:pipinstallparamiko源码demo:fromtimeimport*importparamiko#定义一个类,表示一台远端linux主机classLinux(object):#通过IP,用户名,密码,超时时间初始化一个远程Linux主机def__init__(self,ip,username,password,timeout=30):self.ip=ipself.username=usernameself.password=passwo
系统 2019-09-27 17:53:55 2100
如下所示:>>>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 2100
上面我们学习了RDD如何转换,即一个RDD转换成另外一个RDD,但是转换完成之后并没有立刻执行,仅仅是记住了数据集的逻辑操作,只有当执行了Action动作之后才会真正触发Spark作业,进行算子的计算执行操作有:reduce(func)collect()count()first()take(n)takeSample(withReplacement,num,[seed])takeOrdered(n,[ordering])saveAsTextFile(path
系统 2019-09-27 17:52:33 2100
工厂模式,类似实际的制造车间中,根据订单的需求来生成/创建某个实例。1.应用场景:需要创建的实例不确定,由输入的数据决定;2.实现方法:实现一个独立的类,接收传入的需要创建实例的名称,在该类中实现创建某个具体实例。3.代码:#coding:utf-8classPerson(object):def__init__(self):self.name=Noneself.gender=NonedefgetName(self):returnself.namedefge
系统 2019-09-27 17:52:30 2100