1.Time、 Datetime(常用)
UTC时间:为世界标准时间,时区为0的时间
北京时间,UTC+8东八区
import time print(time.time()) # timestamp,float print(time.localtime()) # tuple: UTC+8 tm_year=2017, tm_mon=7, tm_mday=26, tm_hour=5, tm_min=36, # tm_sec=50, tm_wday=2, tm_yday=207, tm_isdst=0 print(time.gmtime()) # tuple: 标准时间UTC print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) # 2017-07-26 05:42:20 print(time.ctime()) # Wed Jul 26 17:56:13 2017 print(time.asctime(time.localtime())) # tuple convert to Wed Jul 26 17:56:13 2017
print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925 print(datetime.date.fromtimestamp(time.time())) # 时间戳直接转成日期格式 2016-08-19 print(datetime.datetime.now()) print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天 print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天 print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分 c_time = datetime.datetime.now() print(c_time.replace(minute=3,hour=2)) #时间替换
2.Random
import random print (random.random()) # [0,1) 范围内的浮点数 0.3459334502763365 print (random.randint(1,7)) # [1,7] 范围内的int print (random.randrange(1,10)) #5 #random.randrange的函数原型为:random.randrange([start], stop[, step]), # 从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2), # 结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。 # random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。 print(random.choice('liukuni')) #i #random.choice从序列中获取一个随机元素。 # 其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。 # 这里要说明一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。 # list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。 # 下面是使用choice的一些例子: print(random.choice("学习Python"))#学 print(random.choice(["JGood","is","a","handsome","boy"])) #列表元素随机一个 print(random.choice(("Tuple","List","Dict"))) #tuple元素的随机一个 print(random.sample([1,2,3,4,5],3)) #[1, 2, 5] #random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
# --------------------------- 应用---------------------------------- #随机浮点数: print( random.random()) #0.2746445568079129 print(random.uniform(1, 10)) #9.887001463194844 #随机字符: print(random.choice('abcdefg&#%^*f')) #f #多个字符中选取特定数量的字符: print(random.sample('abcdefghij',3)) #['f', 'h', 'd'] #随机选取字符串: print( random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )) #apple #洗牌# items = [1,2,3,4,5,6,7] print(items) #[1, 2, 3, 4, 5, 6, 7] random.shuffle(items) print(items) #[1, 4, 7, 2, 5, 3, 6]
1.os 和 sys
import os
a = os.system("dir") 只是把结果输出到屏幕就完了,a得到dir命令执行的返回值,0或非0
str = os.popen("dir").read() # os.popen("dir")是内存地址,str是打印输出的字符串
import sys
print(sys.path) # 这个是库的路径,找库就在这些路径中找。 ../base/libray自己的库 和../base/libray/site-package第三方库
sys.argv 脚本的相对路径
sys.argv[1] 表示脚本的第一个参数
3.os模块
import os os.getcwd() # pwd os.chdir("d:\") # cd os.curdir # . os.pardir # .. os.makedirs("d:\fff\fff") # 递归创建目录 os.removedirs("d:\fff\fff") # 递归删除清理空文件夹 os.mkdir("d:\aaa") # mkdir os.rmdir("d:\aaa") # 删除单个空目录 os.listdir("d:\") # list方式列出当前目录中的内容 os.remove("d:\a\b\c.txt") # 删除某个文件 os.rename("d:\a\b\c.txt", "d:\a\b\f.txt") # 重命名 os.stat("d:\a\b\s.txt") # 文件或目录属性atime mtime ctime等 os.sep # 路径分隔符,Windows为\Linux为/ os.linesep # 换行符,Windows为 Linux为 os.environ # 查看系统的环境变量 os.pathsep # 环境变量的分隔符Windows为分号 Linux为冒号 # 'PATH': 'C:\ProgramData\Oracle\Java\javapath;C:\windows\system32; os.name # 操作系统名称 Windows为nt os.system("dir") # 执行操作系统自己的命令 os.path.abspath(__file__) # 获取某文件的绝对路径 os.path.split("d:\ff\a.txt") # 返回元祖('d:\ff', 'a.txt') os.path.dirname("d:\ff\a.txt") # 返回d:ff os.path.basename("d:\ff\a.txt") # 返回a.txt os.path.exists("d:\ff\a.txt") # 判断文件或目录是否存在 os.path.isabs("d:\ff\a\mj") # True 判断是否为根开始 os.path.isfile("d:\ff\222.txt") # 判断是否存在并且为文件 os.path.isdir("d:\ff\") # 判断是否存在并且为目录 os.path.join("c:\", "b", "c.txt") # c:c.txt路径字符串连接 os.path.getatime() # 返回文件或目录atime os.path.getmtime() # 返回文件或目录的mtime
4.sys模块
import sys sys.path # 返回模块搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.path.append("..") # 添加模块搜索路径 sys.stdout.write(">") # 控制台输出 sys.stdout.flush() # 从缓存刷出去 sys.version # Python解释器版本 sys.argv # ['abc.py脚本名', '参数st', '参数nd', '参数rd'] sys.platform # win32返回操作系统平台名称 sys.exit() # 退出程序,正常退出时exit(0) # python2.7 sys.maxint sys.stdin.readline()[:-1]
Python退出程序的方式有两种:os._exit(), sys.exit()
1)os._exit() 直接退出 python程序,其后的代码也不会继续执行。
2)sys.exit() 引发一个 SystemExit异常,若没有捕获这个异常,Python解释器会直接退出;捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。
exit() 跟 C 语言等其他语言的 exit() 应该是一样的。
os._exit() 调用 C 语言的 _exit() 函数。
__builtin__.exit 是一个 Quitter 对象,这个对象的 __call__ 方法会抛出一个 SystemExit 异常。
一般来说os._exit() 用于在线程中退出
sys.exit() 用于在主线程中退出。
参考:http://blog.csdn.net/taohuaxinmu123/article/details/39669495
5.shutil模块
import shutil f1 = open("a", "r", encoding="utf8") f2 = open("b", "w", encoding="utf8") shutil.copyfileobj(f1, f2) # 复制文件对象,f1.read(length) f2.write(length) shutil.copyfile("a", "b") # 输入名字直接复制,内部还是copyfileobj方法 shutil.copymode("a.txt", "b.txt") # Linux系统中,a.txt的rwxrwxrwx权限复制到b.txt上,其他不变 shutil.copystat("a", "b") # Linux中,a的rwx权限,atime,mtime,flags复制到b上,其他不变 shutil.copy("a", "b") # 拷贝a的内容和权限给b,内部实现为先copyfile,再copymode shutil.copy2("a", "b") # 拷贝a的内容和权限,atime,mtime,flags到b,内部先copyfile,再copystat shutil.copytree("a", "b/") # 递归复制a目录及其中的所有文件 shutil.rmtree("a") # 递归删除a目录及其所有文件 shutil.move("a", "b") # 递归的移动文件 shutil.make_archive("aa/", "gztar", "/etc/") # /etc目录打包压缩格式为aa.tar.gz shutil.make_archive("aa/","bztar","/etc/") # /etc目录打包压缩格式为aa.tar.bz2
shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:
import zipfile # 压缩 z = zipfile.ZipFile('laxi.zip', 'w') z.write('a.log') z.write('data.data') z.close() # 解压 z = zipfile.ZipFile('laxi.zip', 'r') z.extractall() z.close() zipfile 压缩解压
import tarfile # 压缩 tar = tarfile.open('your.tar','w') tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip') tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip') tar.close() # 解压 tar = tarfile.open('your.tar','r') tar.extractall() # 可设置解压地址 tar.close() tarfile 压缩解压