os.sep:取代操做系统特定的路径分隔符
os.name:指示你正在使用的工做平台。好比对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd:获得当前工做目录,即当前python脚本工做的目录路径。
os.getenv()和os.putenv:分别用来读取和设置环境变量
os.listdir():返回指定目录下的全部文件和目录名
os.remove(file):删除一个文件
os.stat(file):得到文件属性
os.chmod(file):修改文件权限和时间戳
os.mkdir(name):建立目录
os.rmdir(name):删除目录
os.removedirs(r“c:\python”):删除多个目录
os.system():运行shell命令
os.exit():终止当前进程
os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
os.path.split():返回一个路径的目录名和文件名
os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录仍是文件
os.path.existe():检验给出的路径是否真的存在
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():得到当前工做目录
os.curdir:返回当前目录('.')
os.chdir(dirname):改变工做目录到dirname
os.path.isdir(name):判断name是否是目录,不是目录就返回false
os.path.isfile(name):判断name这个文件是否存在,不存在返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):或得文件大小,若是name是目录返回0L
os.path.abspath(name):得到绝对路径
os.path.isabs():判断是否为绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,若是你彻底使用目录,它也会将最后一个目录做为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名和扩展名
os.path.join(path,name):链接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
datetime模块api
datetime模块一般用来操做日期信息(年月日和时分秒),经常使用的方法有:
datetime.datetime.now():返回当前日期时间的datetime对象,对象中包含年月日和时分秒信息,可经过str它来获得日期时间信息的字符串。
datetime.datetime.fromtimestamp(timestamp):将时间戳转换成datetime对象,并返回。
datetime.datetime.strptime(date_string, format):将字符串按照指定格式转成datetime对象,并返回,如:datetime.datetime.strptime('2016-09-04', '%Y-%m-%d')。
datetime.datetime.strftime(datetime, format):将datetime对象转换为指定格式的字符串,并返回,如:datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')。
datetime.timedelta:timedelta对象初始化时指定日期时间信息,可用它与datetime对象进行加减操做,并返回新的datetime对象,固然timedelta对象之间也能够进行加减操做,返回新的timedelta对象。
timetuple():将datetime对象转换成struct_time对象,并返回
类和对象数据结构
类(Class): 用来描述具备相同的属性和方法的对象的集合。它定义了该集合中每一个对象所共有的属性和方法。对象是类的实例。。
对象:经过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
建立类
使用 class 语句来建立一个新类,class 以后为类的名称并以冒号结尾:
lass ClassName:
'类的帮助信息' #类文档字符串
class_suite #类体
class Employee:
'全部员工的基类'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
-
empCount 变量是一个类变量,它的值将在这个类的全部实例之间共享。你能够在内部类或外部类使用 Employee.empCount 访问。
-
第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当建立了这个类的实例时就会调用该方法
-
self 表明类的实例,self 在定义类的方法时是必须有的,虽然在调用时没必要传入相应的参数。
self表明类的实例,而非类
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
建立实例对象
实例化类其余编程语言中通常用关键字 new,可是在 Python 中并无这个关键字,类的实例化相似函数调用方式。
如下使用类的名称 Employee 来实例化,并经过 __init__ 方法接收参数。
"建立 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
"建立 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
Python内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是'__main__.className',若是类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的全部父类构成元素(包含了一个由全部父类组成的元组)
类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是经过继承机制。
经过继承建立的新类称为子类或派生类,被继承的类称为基类、父类或超类。
总结:
一、若是在子类中须要父类的构造方法就须要显示的调用父类的构造方法,或者不重写父类的构造方法。详细说明可查看:python 子类继承父类构造函数说明。 二、在调用基类的方法时,须要加上基类的类名前缀,且须要带上 self 参数变量。区别在于类中调用普通函数时并不须要带上 self 参数 三、Python 老是首先查找对应类型的方法,若是它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,若是不是起始位置匹配成功的话,match()就返回none。
re.match(pattern, string, flags=0)
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的配方法
匹配对象方法 |
描述 |
group(num=0) |
匹配的整个表达式的字符串,group() 能够一次输入多个组号,在这种状况下它将返回一个包含那些组所对应值的元组。 |
groups() |
返回一个包含全部小组字符串的元组,从 1 到 所含的小组号。 |
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
re.search(pattern, string, flags=0)
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的配方法
匹配对象方法 |
描述 |
group(num=0) |
匹配的整个表达式的字符串,group() 能够一次输入多个组号,在这种状况下它将返回一个包含那些组所对应值的元组。 |
groups() |
返回一个包含全部小组字符串的元组,从 1 到 所含的小组号。 |
区别
re.match只匹配字符串的开始,若是字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
检索和替换
re.sub用于替换字符串中的匹配项
re.sub(pattern, repl, string, count=0, flags=0)
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的配方法
- count : 模式匹配后替换的最大次数,默认 0 表示替换全部的匹配。
re.compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
re.compile(pattern[, flags])
findall
在字符串中找到正则表达式所匹配的全部子串,并返回一个列表,若是没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配全部。
findall(string[, pos[, endpos]])
- string : 待匹配的字符串。
- pos : 可选参数,指定字符串的起始位置,默认为 0。
- endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。
re.finditer
和 findall 相似,在字符串中找到正则表达式所匹配的全部子串,并把它们做为一个迭代器返回
re.finditer(pattern, string, flags=0)
re.split
split 方法按照可以匹配的子串将字符串分割后返回列表,它的使用形式以下:
re.split(pattern, string[, maxsplit=0, flags=0])
参数 |
描述 |
pattern |
匹配的正则表达式 |
string |
要匹配的字符串。 |
maxsplit |
分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。 |
flags |
标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志 |
正则表达式对象
re.RegexObject
re.compile() 返回 RegexObject 对象。
re.MatchObject
group() 返回被 RE 匹配的字符串。
- start() 返回匹配开始的位置
- end() 返回匹配结束的位置
- span() 返回一个元组包含匹配 (开始,结束) 的位置
http请求
1、python自带库----urllib2
简单的get请求
import urllib2
response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')
print response.read()
post请求
import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data)
print response.read()
print response.getheaders()
2、python自带库--httplib
get请求
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/parrot.spam")
r2 = conn.getresponse()
data2 = r2.read()
conn.close()
post请求
import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
data = response.read()
print data
conn.close()
3、第三方库--requests
get请求
print requests.get('http://localhost:8080).text
post请求
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text