自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

另一个自己

菜鸟的成长乐园!

  • 博客(108)
  • 收藏
  • 关注

原创 Python 线程同步与互斥

什么是并发?在操作系统中,指一个时间段内有几个程序都处于已启动到运行结束之间的状态,并且这几个程序都是在同一个处理机上运行的,但任一个时间点却只有一个程序在处理机上执行。 注意并发与并行并不是同一个概念。并发是指一个时间段内同时运行,表示的是一个区间,而并行是指在同一个时间点上都在运行,是一个点,并且并发在同一时间点上只能有一个程序在运行。 线程同步与互斥并发进程与线程区别

2015-11-04 18:38:23 3599

原创 Python 多线程 threading和multiprocessing模块

线程是一个进程的实体,是由表示程序运行状态的寄存器(如程序计数器、栈指针)以及堆栈组成,它是比进程更小的单位。 线程是程序中的一个执行流。一个执行流是由CPU运行程序代码并操作程序的数据所形成的。因此,线程被认为是以CPU为主体的行为。 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态。所以, multiprocessing.Threadthreading.dummy

2015-11-04 16:37:38 19599

原创 Python 多进程 multiprocessing.Pool类详解

multiprocessing模块multiprocessing包是Python中的多进程管理包。它与 threading.Thread类似,可以利用multiprocessing.Process对象来创建一个进程。该进程可以允许放在Python程序内部编写的函数中。该Proces

2015-11-04 16:25:55 135154 8

原创 Python 多进程 fork()详解

进程进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程。进程是系统进行资源分配和调度的一个独立单位。进程是由代码(堆栈段)、数据(数据段)、内核状态和一组寄存器组成。 在多任务操作系统中,通过运行多个进程来并发地执行多个任务。由于每个线程都是一个能独立执行自身指令的不同控制流,因此一个包含多个线程的进程也能够实现进程内多任务的并发执行。 进程是一个内核级的实体,进程结

2015-11-04 16:02:45 20899

原创 Python Excel解析

Python解析Excel时需要安装两个包,分别是xlrd(读excel)和xlwt(写excel),安装方法如下:pip install xlrdpip install xlwt读取Excel表读取excel前需要先引入该模块(import xlrd)。但是需要注意的是,用xlrd读取excel表时,返回的xlrd.Book类型,是只读的,不能对其进行操作。下面介绍一下读取Excel的流程及使

2015-10-31 21:27:46 11585

原创 Python JSON 解析

Python中JSON解析Python2.6开始加入了JSON模块。 Python的JSON模块序列化和反序列化分别是encoding和decoding。encoding :将一个Python对象编码成JSON字符串。decoding:将JSON格式字符串解码成Python对象。对简单的数据类型可以直接处理。如:string、unicode、int、float、list、tuple、dict

2015-10-31 20:58:48 3834

原创 Python 创建XML

xml.dom.minidom模块实现创建一个XML文档。创建XML的过程1、内存数据产生 2、产生xml内存对象(也就是DOM树) 3、产生根对象 4、往根对象里加数据 5、把xml内存对象写到文件 下面是一个创建xml文档的简单实例:import xml.dom.minidom#在内存中创建一个空的文档doc = xml.dom.minidom.Document() #创建一个根节

2015-10-31 18:40:16 22018 1

原创 Python XML的解析与创建

常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然是用是用场合也不同。 Python有三种方法解析XML:SAX(不常用)DOMElementTreeSAX(simple API for XML)Python标准库中包含SAX解析器,SAX是用的是事件驱动模型,通过在解析XML过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。 解析的基本过程:

2015-10-31 18:27:20 2271

原创 python 文本解析 XML基础

Python xml 基础什么是xml?XML指可扩展标记语言(Extensible Markup Language)XML被设计用于结构化、存储 和传输数据XML是一种标记语言,很类似于HTMLXML没有像HTML那样具有预定义标签,需要程序员自定义标签。XML被设计为具有自我描述性,并且是W3C的标准XML文档(树结构)XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”

2015-10-31 18:11:46 1901

原创 Python 正则表达式(分组)

正则表达式分组分组就是用一对圆括号“()”括起来的正则表达式,匹配出的内容就表示一个分组。从正则表达式的左边开始看,看到的第一个左括号“(”表示第一个分组,第二个表示第二个分组,依次类推,需要注意的是,有一个隐含的全局分组(就是0),就是整个正则表达式。 分完组以后,要想获得某个分组的内容,直接使用group(num)和groups()函数去直接提取就行。例如:提取代码中的超链接中的文本>>> s

2015-10-21 12:47:39 18392

原创 Python 正则表达式(常用函数)

下面介绍一些Python中常用的正则表达式处理函数。re.match()函数原型:match(pattern, string, flags=0) Try to apply the pattern at the start of the string, returning a match object, or None if no match was found.函数作用: re.match

2015-10-21 12:28:20 6068

原创 Python 正则表达式(基础)

Python正则表达式定义正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串,或者是在指定的文章中,抓取特定的字符串等。python处理正则表达式的模块是re模块,它是Python语言拥有全部的正则表达式功能。 正则表达式由一些普通字符和一些元字符组成。普通字符包

2015-10-21 12:07:40 926

原创 Java面向对象(二)

方法重载java语言中,重载是指在同一个类中一个方法名被用来定义多个方法。如:public void println(int i){...}public void println(float money){...}public void println(String name){...}上例中使用方法名println可以定义打印输出各种数据类型的方法。 方法重载是面向对象程序语言多态性的一种

2015-10-08 12:55:24 540

原创 Java面向对象(一)

面向对象是java语言最基本的特征之一。java中类和对象的基本概念。对象对象是面向对象方法中的核心概念,也是理解面向对象技术的关键。 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。程序中所有东西都是对象。可以将对象想象成一种新类型的变量,它保存着数据,对外提供服务,对自己的数据进行操作。程序是一系列对象的组合。对象之间通过消息传递机制组合起来,相互调用彼此的方法,

2015-10-06 17:25:12 854

原创 Java 数组

数组是同一种类型数据的集合。其实数组就是一个容器。 数组的长度在创建时确定,并且创建后就不能改变。如果想存储不同类型的数据,同时存储的结构长度可以动态变化,那么就可以使用java.util包中的集合类(collection)。数组的声明可以声明任意类型的数组,包括基本类型和类类型的数组。数组声明包括两部分:数组的类型和数组的名字。java中数组的声明有两种格式:格式一:int a[] ;P

2015-10-03 21:25:56 1007

原创 java语言基础(二)

表达式与语句变量变量按照类型分:基本类型和引用类型。按作用域分:局部变量、类成员变量、方法参数和异常处理参数。局部变量 在一个方法或一对{}表示的代码块内定义的变量称为局部变量。局部变量的作用域是所在的方法或代码块,当程序执行流进入所在的方法或代码块时创建该变量,在方法或代码块退出时消亡,因此也叫自动变量或临时变量。类成员变量 在方法外且在一个类的定义体中声明的变量就叫类成员变量。类成员变量

2015-10-01 21:11:35 490

原创 Java语言基础(一)

标识符与数据类型1.1 java基本语法Java中以分号“;”为语句的分隔符。一个语句可以写在多行,如:var = a + b + c d + e;一对大括号“{}”里面包含了一系列语句,作为语句块。语句块可以嵌套。 Java源程序中允许在变量、标识符、表达式、语句等代码元素之间出现任意数量的空白,空格、Tab键和换行符都是空白。可以适当在程序中使用空白符,可以增加程序的可读性。1.2

2015-09-30 21:38:19 588

原创 Python面向对象(二)

访问属性及方法类通过函数(在class语句内由def语句编写的)为实例提供行为。因为这种嵌套的def会在类中对变量名进行赋值,实际效果就是把属性添加到类对象之中,从而可以由所有实例和子类继承。 这种def语句块出现在内内部时,通常就叫方法,而且会自动接收第一个特殊参数(通常为self),这个参数提供了被处理的实例的参照值,并且一定是明确写出来的。 访问对象的属性及方法,需要使用(.)来访问。如果

2015-09-29 20:36:44 767

原创 Python面向对象之继承

Python 继承即一个派生类(derived class)继承基类(bass class)字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计,一个Cat类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例如,Cat是一个Animal)。 继承实现了代码的重用。 继承的基本语法:class 派生类名(基类名1 [, 基类名2....]):基类名写

2015-09-29 19:26:07 1717

原创 Python面向对象(一)

Python也是一门面向对象的编程语言。下面就让我们走进Python的面向对象编程世界。但是在正式进行python的面向对象编程时,得先了解一些Python中类的知识。 类是Python实现支持继承的新种类的对象的部件,也是Python面向对象程序设计(OOP)的主要工具。 PYthon中类的建立使用了一条新的语句:class语句。1、面向对象有三大特点:封装继承多态2、什么叫类?类(C

2015-09-29 19:15:53 1455

原创 Python subprocess模块解析

在学习这个模块前,我们先用Python的help()函数查看一下subprocess模块是干嘛的:DESCRIPTION This module allows you to spawn processes, connect to their input/output/error pipes, and obtain their return codes. 即允许你去创建一个新的进程让其

2015-09-29 12:31:27 6975

原创 Linux awk命令详解

awk :适用程序,一种unix工具 就是一个强大的文本分析工具,相对于grep查找、sed的编辑,awk在对数据分析并生成报告的时候,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种处理。awk是用来操作数据和产生报表的一种编程语言。数据可能来自标准输入、一个或多个文件或一个进程的输出等。awk可以用在命令行里进行简单操作,也可应用到较大的应

2015-09-21 18:13:14 7973 1

原创 Linux sed命令解析

sed是一种流线型、非交互式编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed中动作都是

2015-09-21 17:12:15 1186

原创 Linux 正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 grep、sed、awk、expr或vi中经常用到正则表达式。想要学好shell编程,就必须精通正则表达式。 正则表达式是一个字符和元字符组合成的字符集,它们匹配一个模式。字符即普通字符(如字符a 到 z),元字符即特殊

2015-09-21 16:42:38 408

原创 linux下彻底卸载MySQL

MySQL的安装方法有很多种,常见的有yum、rpm和源码安装,那么针对不同的安装方法,也存在不同的卸载方法,其中yum和rpm安装的卸载方法一样。 本节主要介绍Linux下如何彻底卸载已安装过的mysql,以便能顺利安装下一个版本的mysql。1、源码安装卸载虽然源码安装时相对复杂,但是它的卸载却很简单。 只要在安装目录下直接执行 make uninstall这个命令,就可以卸载源码安装的my

2015-09-15 13:43:26 8575 1

原创 Linux下MySQL的安装

本文介绍一下Linux(CentOS 6.x)下安装MySQL的三种方法:yum安装、rpm安装、源码安装。1、yum安装使用yum安装mysql,是最简单的安装方式。 这里假设CentOS源可连接或者已经挂载了本地光盘源。安装mysql,命令如下:[root@admin ~]# yum install mysql mysql-server mysql代表客户端,mysql-server代表服务

2015-09-15 09:36:54 849

原创 Linux下解决命令未找到的问题

有时候我们在Linux命令行执行某个命令时,会报命令找不到的错误,这个错误出现的原因是,在执行命令时,系统会从系统环境变量中去寻找,如果找到了就执行,没找都就会报命令未找到。下面我们拿Linux下执行mysql mysqladmin时,报 command not found为例讲解一下解决办法吧。 查看一下系统目前的环境变量mysql程序安装好后,直接执行mysql或mysqladmin时,系统

2015-09-15 08:31:53 38101 5

原创 MySQL数据文件及常用工具

MySQL的数据文件MySQL的配置文件(此处以5.6版本为例): MySQL5.6版本的默认配置文件在/etc/my.cnf,在这个配置文件中,能看到mysql的基本目录(包含依赖包,运行环境等)和数据目录的存放路劲,这些都是可以自己制定的。basedir目录,存放的是MySQL的一些安装信息,如依赖包,运行环境等。 datadir目录,是数据存放目录,后期创建所有数据库,数据表都存放在这个目

2015-09-14 22:05:58 711

原创 Python 冒泡排序

冒泡排序(Bubble Sort),是一种较简单的排序算法。冒泡排序算法原理: 开始时扫描整个序列,在扫描过程中两两比较相邻记录,如果第一个数比第二个数大,就交换他们,这样第一趟下来,最大的记录就会被“沉到”序列的最后面一个位置,第二趟开始扫描除了最后一个元素中的第二大记录并“沉到”倒数第二个位置,重复上述操作,直到n - 1扫描后,整个序列就排好序了。如下图所示:Python实现冒泡核心代码如下

2015-09-13 19:02:45 2224

原创 Python 实现栈

栈(stacks)是一种只能通过访问其栈尾来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。 下面是python实现栈的代码:#!/usr/bin/python#coding=utf-8class Stack(object) : def __init__(self,size): #类的构造函数 self.size = s

2015-09-13 09:53:11 4377 1

原创 Python 实现队列

虽然Python有自己的队列模块,我们只需要在使用时引入该模块就行,但是为了更好的理解队列,自己将队列实现了一下。 队列是一种数据结构,它的特点是先进先出,也就是说队尾添加一个元素,队头移除一个元素,类似于商场排队结账,先来的人先接账,后来的排在队尾。在我们日常生活中,发送短信就会用到队列。下面是Python实现队列的代码:#!/usr/bin/python#coding=utf-8class

2015-09-13 09:22:16 5446

原创 Python 文件操作

跟其他编程语言一样,Python在做文件操作时,必须先打开一个文件,并且在文件操作完毕后,必须关闭这个文件。file对象属性一旦文件被打开,文件对象就可以得到该文件的各种信息。下面是文件对象所有的属性列表:属性  描述File.closed                        如果文件被关闭则返回True,否则返回F

2015-09-10 11:20:22 972

原创 Python时间模块之Time模块解析

Python中time模块详解在我们平常的代码中,经常需要和时间打交道。在Python中,与时间处理相关的模块有:time、datetime以及calendar。学会计算时间,对程序的调优非常重要,可以在程序中狂打时间戳,来具体判断程序中哪一块耗时最多,从而找到程序调优的重心处。这里先来讲一个time模块。 在开始前,先说明几点:时间戳、格式化的时间字

2015-09-09 13:08:49 14439 1

原创 Linux 内存及cpu解析

free :查看内存、swapuptime : 查看load,启动多少时间,目前有多少个用户cat /proc/cpuinfo : 查看cpu的核数vmstat :LInux/Unix监控工具pidstat :实时监控运行进程命令ps :列出系统中当前运行的进程,相当于Windows的任务管理器top :实时监控Linux的系统状况kill :杀进程命令

2015-09-05 21:57:09 2270 1

原创 Linux 磁盘管理

LInux磁盘管理的好坏直接关系到整个系统的性能问题。fdisk : 磁盘分区表操作工具 该命令只能是root用户使用。 df:查看文件系统的磁盘空间占用情况,可以利用该命令来获取硬盘被占用了多少空间,还剩多少。du:查看文件和目录占用的空间watch监测一个命令的运行结果time 查看一个命令的运行时间

2015-09-04 16:02:06 587

原创 Linux用户和用户组管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号身份进入系统。每个用户账号都拥有一个唯一的用户名和密码,用户输入用户名和密码后,就可以进入系统和自己的主目录。Linux系统用户账号的管理添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户名、用户组、主目录和登录shell等资源,刚添加的账号是被锁定的,无法使用的,

2015-09-04 15:44:22 444

原创 Linux 系统状况之查看用户

查看用户whoami : 看看自己是谁? —-看到的是当前操作的用户logname : 看看自己到底是谁? —-看到的是当前登录的用户who : 看看还有谁? —-看看有哪些用户登录到我的机器w : 看看到底还有谁? —-更详细的看到登录我机器的用户的信息last : 看看之前都有谁?—-查看历史登录用户信息,查看的文件也是黑客常删的文件查看用户

2015-09-04 15:30:48 1156

原创 Python 集合set

可变集合set集合set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删除集合中的元素、求集合的交集、并集、差集等操作。下面就让我们一一来学习集合的这些知识吧。1、set创建集合set集合类需要的参数必须是迭代器类型的,如:序列、字典等,然后转换成无序不重复的元素集。

2015-09-03 22:30:49 16390

原创 Python 异常处理

Python提供了两个非常重要的功能来处理异常和错误。由此可以使用两功能来调试python程序。异常处理断言-assert1、异常处理1.1、异常概念异常是指程序中的例外,违例,影响程序正常执行的情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的try- excepttry -finally自定义异常触发异常

2015-09-01 22:38:01 835

原创 Python 包

Python 包在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包是一个分层的文件目录结构,它定义了一个由模块及子包和子包下的子包等组成的Python的应用环境。 包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹被当作包使用时,文件夹中需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init_

2015-09-01 22:30:51 426

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除