学习网址:http://www.cnblogs.com/alex3714/articles/5161349.html
import sys sys.stdout.write('fa') #打印输入字符串 sys.path.append() sys.argv: 实现从程序外部向程序传递参数。
sys.exit([arg]) #程序中间的退出,arg=0为正常退出。
sys.getdefaultencoding() #获取系统当前编码,一般默认为ascii。
sys.setdefaultencoding() #设置系统默认编码
sys.exit(获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下) #执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数, sys.path #获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下 sys.modules #sys.modules是一个全局字典,该字典是python启动后就加载在内存中。 sys.version 获取Python解释程序的版本信息
import os
os.getcwd() #查看当前所在路径。os.listdir(path) #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印os.path.abspath(path) #返回path的绝对路径。os.path.split(path) #将路径分解为(文件夹,文件名),返回的是元组类型os.path.join(path1,path2,...) #将path进行组合,若其中有绝对路径,则之前的path将被删除。os.path.dirname(path) #返回path中的文件夹部分,结果不包含'\'os.path.exists(path) #文件或文件夹是否存在,返回True 或 Falseos.path.getsize(path) #文件或文件夹的大小,若是文件夹返回0os.path.getmtime(path) #文件或文件夹的最后修改时间,从新纪元到访问时的秒数。os.path.getatime(path) #文件或文件夹的最后访问时间,从新纪元到访问时的秒数。os.path.getctime(path) #文件或文件夹的创建时间,从新纪元到访问时的秒数。os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层递归目录os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirnameos.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirnameos.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.split(path) 将path分割成目录和文件名二元组返回os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素os.path.isabs(path) 如果path是绝对路径,返回Trueos.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回Falseos.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回Falseos.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
import time time.sleep(0.1) #每隔n秒操作一次,既睡眠时间
import json
json.dumps() #将数据转为json格式
json.loads() #将json数组解密import shelve
#shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式例:
d = shelve.open('shelve_test') #打开一个文件 class Test(object): def __init__(self,n): self.n = n t = Test(123) t2 = Test(123334) name = ["alex","rain","test"] d["test"] = name #持久化列表 d["t1"] = t #持久化类 d["t2"] = t2 d.close() import pickle pickle.dumps() #将数据转换成字节类型保存,可以保存函数 pickle.loads() #将字节类型数据转换回来,转换后可以调用函数import random
random.random() #生成0~1之间的随机数random.randint() #生成a~b内的整型随机数,小于等于a大于等于b
random.randrange() #从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。
random.choice('string') #从序列中随机抽取 一个元素
random.choice(["JGood","is","a","handsome","boy"])random.sample() #从指定序列中随机获取指定长度的片断
#random.sample([1,2,3,4,5],3) #[1, 2, 5]random.uniform() #浮点数指定区间浮点数
random.uniform(1, 10)) #9.887001463194844#洗牌#
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] import shutil shutil.copyfilebj('复制文件','拷贝的另一个文件') #拷贝的文件一定要先创建 shutil.copyfile('复制文件','新文件名') #拷贝文件 shutil.copymode('复制文件','拷贝的文件') #仅拷贝权限,内容、组、用户均不变 shutil.copystat('复制文件','拷贝文件') #拷贝状态信息,包括mode bits, atiem, mtime, flags shutil.copytree(src, dst, symlinks=False, ignore=None) #递归的去拷贝文件 shutil.rmtree(path[, ignore_errors[, onerror]]) #递归的去删除文件 shutil.move(src, dst) #递归的去移动文件 shutil.make_archive(base_name, format,...) #创建压缩包并返回文件路径,例如:zip、tar base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, 如:www =>保存至当前路径 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/ format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” root_dir: 要压缩的文件夹路径(默认当前目录) owner: 用户,默认当前用户 group: 组,默认当前组 logger: 用于记录日志,通常是logging.Logger对象 import zipfile z = zopfile.Zipfile('name.zip','w')#压缩
z.write('new.log') z.write('data.data') z.close()#解压
z = zipfile.Zipfile('name.zip','r') z.extractall() z.close()例子:www.cnblogs.com/alex3714/articles/5161349.htmlimport xml.etree.ElementTree as ET
tree = ET.parse("文件名.xml")
root = tree.getroot()print(root.tag)#遍历xml文档for child in root: print(child.tag, child.attrib) for i in child: print(i.tag,i.text)#只遍历year 节点for node in root.iter('year'): print(node.tag,node.text) #修改、删除import xml.etree.ElementTree as ET tree = ET.parse("xmltest.xml") root = tree.getroot() #修改 for node in root.iter('year'): new_year = int(node.text) + 1 node.text = str(new_year) node.set("updated","yes") tree.write("xmltest.xml") #删除node for country in root.findall('country'): rank = int(country.find('rank').text) if rank > 50: root.remove(country) tree.write('output.xml')
#创建xml文档
import xml.etree.ElementTree as ET new_xml = ET.Element("namelist") name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"}) age = ET.SubElement(name,"age",attrib={"checked":"no"}) sex = ET.SubElement(name,"sex") sex.text = '33' name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"}) age = ET.SubElement(name2,"age") age.text = '19' et = ET.ElementTree(new_xml) #生成文档对象 et.write("test.xml", encoding="utf-8",xml_declaration=True) ET.dump(new_xml) #打印生成的格式 PyYAML模块 参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation
hashlib模块
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密 import hmac h = hmac.new(b'天王盖地虎', b'宝塔镇河妖') print h.hexdigest()
re模块
正则