- Shutil模块 -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.exist(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(path[,path2[,...]])将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
复制文件的函数居然在os模块中不存在!原因是复制文件并非由操作系统提供的系统调用。理论上讲,我们通过读写文件可以完成文件复制,只不过要多写很多代码。shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。
- SYS模块 -copyfile(src, dst):从源src复制到dst中去。当然前提是目标地址是具备可写权限(异常信息为IOException),如果当前的dst已存在的话就会被覆盖掉。
copymode(src, dst):只是会复制其权限其他的东西是不会被复制的。
copystat(src, dst):复制权限、最后访问时间、最后修改时间。
copy(src, dst) :复制一个文件到一个文件或一个目录。
copy2(src, dst) :在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西。
move(src, dst) :移动一个文件到一个目录。如果源和目标在同一路径,操作相当于是rename操作,只是改名。
shutil.disk_usage():获取当前目录磁盘信息,如total、used、free等信息。
copytree(olddir, newdir, True/Flase):把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接。
- PyMysql模块 -目前Python 3操作MySQL的驱动常用的有pymysql和mysqlclient。 使用这种数据库接口大多是就是执行连接数据库->执行query->提取数据->关闭连接这几个步骤。pymysql提供比较关键的对象,分别是Connection、Cursor、Result,使用方式上与MySQLdb或mysqlclient没什么差别。- Request模块 -Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。 Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 在Python的世界里,事情不应该这么麻烦。Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。sys.argv[0]:命令行参数List,第一个元素是程序本身路径。
sys.modules.keys():返回所有已经导入的模块列表。
sys.exc_info():获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息。
sys.exit(n):退出程序,正常退出时exit(0)。
sys.hexversion:获取Python解释程序的版本值,16进制格式如:0x020403F0。
sys.version:获取Python解释程序的版本信息。
sys.maxint:最大的Int值。
sys.maxunicode:最大的Unicode值。
sys.modules:返回系统导入的模块字段,key是模块名,value是模块。
sys.path:返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值。
sys.platform:返回操作系统平台名称。
sys.stdout:标准输出。
sys.stdin:标准输入。
sys.stderr:错误输出。
sys.exc_clear():用来清除当前线程所出现的当前的或最近的错误信息。
sys.exec_prefix:返回平台独立的python文件安装的位置。
sys.byteorder:本地字节规则的指示器,big-endian平台的值是’big’,little-endian平台的值是’little’。
sys.copyright:记录python版权相关的东西。
sys.api_version:解释器的C的API版本
Requests模块安装:
pip install requests
也可以使用easy_install安装:
easy_install requests
Requests模块使用:
get
res = requests.get("https://github.com/timeline.json") ;
post
res = requests.post("http://httpbin.org/post");
put
res = requests.put("http://httpbin.org/put");
delete
res = requests.delete("http://httpbin.org/delete");
head
res = requests.head("http://httpbin.org/get") ;
options
res = requests.options("http://httpbin.org/get");
以上的HTTP方法,对于WEB系统一般只支持 GET 和 POST,有一些还支持 HEAD 方法。
带参数的请求实例:
import requests
requests.get('http://www.dict.baidu.com/s', params={'wd': 'python'}) #GET参数实例
requests.post('http://www.itwhy.org/wp-comments-post.php', data={'comment': '测试POST'}) #POST参数实例
POST发送JSON数据:
import requests
import json
r = requests.post('https://api.github.com/some/endpoint', data=json.dumps({'some': 'data'}))
print(r.json())
定制header:
import requests
import json
data = {'some': 'data'}
headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)