PYTHON之路(五)

正则表达式

用compile方法先生成要匹配的正则对象

相当于m=re.match("^[0-9]","18ruue");print m.group()

re.match
re.search
re.sub
re.findall
re.split

re.search ---- > group

re.split

re.findall

re.sub

冒泡排序

模块
模块中供别人调用的方法所在的文件最好不要执行初始化对象,比如下面例子中的tv()
index.py 执行会报错,说没有那个模块

这个文件会被main.py所调用,对于main.py来说,它能识别backend.db.sqlApi.select, 因为它的当前路径sys.path下一级即是backend.所以它调用index.py不出错,还把index.py里的语句tv()也执行了。


正确写法是去掉tv()在index.py

从自己往上级或者上上级调用该怎么办?
goUpper.py uses from conf import settings , 可以看到conf目录是goUpper.py的上上级了,而conf在selfDefineModule目录之下,因此需要把selfDefineModule目录加入到sys.path.
__file__是打印相对路径,os.path.abspath()打印绝对路径, os.path.dirname()是打印前一层目录

os.path.dirname()
os.path.abspath(__file__)

time and datetime module

import time
import datetime

print(time.clock()) #返回处理器时间,3.3开始已废弃
print(time.process_time()) #返回处理器时间,3.3开始已废弃
print(time.time()) #返回当前系统时间戳
print(time.ctime()) #输出Tue Jan 26 18:23:48 2016 ,当前系统时间
print(time.ctime(time.time()-86640)) #将时间戳转为字符串格式
print(time.gmtime(time.time()-86640)) #将时间戳转换成struct_time格式
print(time.localtime(time.time()-86640)) #将时间戳转换成struct_time格式,但返回 的本地时间
print(time.mktime(time.localtime())) #与time.localtime()功能相反,将struct_time格式转回成时间戳格式
#time.sleep(4) #sleep
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将struct_time格式转成指定的字符串格式
print(time.strptime("2016-01-28","%Y-%m-%d") ) #将字符串格式转换成struct_time格式

#datetime module

print(datetime.date.today()) #输出格式 2016-01-26
print(datetime.date.fromtimestamp(time.time()-864400) ) #2016-01-16 将时间戳转成日期格式
current_time = datetime.datetime.now() #
print(current_time) #输出2016-01-26 19:04:30.335935
print(current_time.timetuple()) #返回struct_time格式

#datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
print(current_time.replace(2014,9,12)) #输出2014-09-12 19:06:24.074900,返回当前时间,但指定的值将被替换

str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #将字符串转换成日期格式
new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天
new_date = datetime.datetime.now() + datetime.timedelta(days=-10) #比现在减10天
new_date = datetime.datetime.now() + datetime.timedelta(hours=-10) #比现在减10小时
new_date = datetime.datetime.now() + datetime.timedelta(seconds=120) #比现在+120s
print(new_date)

random module

random.random()
random.randint(1,5)
randon.randrange(1,5)

import random
import re
bb=‘‘

for i in range(4):
aa = random.randint(0,4)
if aa != i:
tmp = chr(random.randrange(65,90))
else:
tmp = random.randint(0,9)
bb+=str(tmp)
print(bb)
a = re.findall("[0-9]",bb)
b = re.findall("[A-Z]",bb)
if a:
if len(a) > 2:
bb=re.sub("[0-9]",str(chr(random.randrange(65,90))),bb,count=1)
if b:
if len(b) > 2:
bb=re.sub("[A-Z]",str(random.randrange(0,9)),bb,count=1)

print(bb)

OS模块  
提供对操作系统进行调用的接口

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: (‘.‘)
os.pardir 获取当前目录的父目录字符串名:(‘..‘)
os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录
os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat(‘path/filename‘) 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串
os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

sys模块

sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write(‘please:‘)
val = sys.stdin.readline()[:-1]

sys.stdout.flush()是让#逐个打印,而不是全部输出到缓冲区后最后一起打印

pickle and json
pickle only exists in python; pickle supports many data types, such as dict, list, function, module
json supports all language; json supports basic data type

http://www.cnblogs.com/alex3714/articles/5161349.html

时间: 2024-10-13 22:53:02

PYTHON之路(五)的相关文章

python之路五

内建模块 time和datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时. 时间戳(timestamp)的方式:通常来说,时间戳表示的是从19

Python之路【第十五篇】:Web框架

Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/env python #coding:utf-8   import socket   def handle_request(client):     buf = client.recv(10

七日Python之路--第五天(之找点乐子)

(一)一些闲言碎语 刚才在搜索的时候,看到别人说的一句话,大体意思如下:自从学习Python之后,就不想在学习其他语言了,只想抓紧时间写些有用的东西.细想一下,果真如此. 唉,Python魅力如此之大.感觉比Java容易的多,也可能是小众语言,因为足够小才显得足够强大.算了,不愿多想,还是多写些有意思的东西吧,哈哈. (二)一些有趣的代码 (1)一句话文件服务器 [email protected]:~$ python -m SimpleHTTPServer Serving HTTP on 0.0

Python之路【第五篇】:面向对象和相关

Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 class Foo(object):     pass obj = Foo() isinstance(obj, Foo) 二.issubclass(sub, super) 检查sub类是否是 super 类的派生类 1 2 3 4 5 6 7 class F

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python之路_Day10

Python之路_Day10_课堂笔记 上节回顾: socket: 1.导入模块 2.创建socket 3. 字节 send:每次发送可能没有完全发送,send发送后会有一个返回值,是本次发送了多少. sendall:循环发送,直到全部发送完全. 接收 recv(2048):最多可以接收2048字节,上传文件时需要注意 粘包: socketserver: 1.自定义类 2.继承socketserver.BaseRequestHandler类 3.重写handle方法 4.socketserver

Python之路_Day5

Python之路_Day5_课堂笔记 ---------------------------------------------------------------------------------------------------- 前期回顾: 一.python基础 二.基本数据类型 int str list tuple dict set 三.函数式编程 四.装饰器 1.将func当作参数传递给装饰器,并执行 2.将装饰器函数的返回值重新赋值给func ------------------

Python之路【第十八篇】:Web框架们

Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. 1 2 3 4 pip install bottle easy_install bottle apt-get install python-bottle wget http://bottlepy.org/bottle.py Bottle框架大致可以分为以下部分: 路

Python之路_Day6

Python之路_Day6_课堂笔记 前期回顾: 无 本期内容: 一.atm作业讲解 二.递归的例子,阶乘 三.反射 四.模块 五.冒泡算法 六.本周作业 一.ATM作业讲解 二.递归的例子,阶乘 使用递归实现"1*2*3*4*5*6*7" #!/usr/bin/env python # -.- coding: utf-8 -.- # By sandler # 递归阶乘 def func(num): if num == 1: return 1 return num * func(num