python---模块

来源:互联网 发布:vb皮肤控件 skinsharp 编辑:程序博客网 时间:2024/05/29 14:46

python—模块

函数与模块的区别:1、函数是处理代码重用,节省代码量,可以看起来简洁;2、模块是维护方便,节省代码量,功能扩展非常方便,方便耦合性、兼容性,最好不要使用print打印信息出来。

这里写图片描述

这里写图片描述

1、基本模块使用

root@kali:~/python/atm# pythonPython 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import tab>>> import sys>>> sys.#按住电脑的tab键sys.__class__(              sys.__setattr__(            sys.displayhook(            sys.getrecursionlimit(      sys.prefixsys.__delattr__(            sys.__sizeof__(             sys.dont_write_bytecode     sys.getrefcount(            sys.ps1sys.__dict__                sys.__stderr__              sys.exc_clear(              sys.getsizeof(              sys.ps2sys.__displayhook__(        sys.__stdin__               sys.exc_info(               sys.gettrace(               sys.py3kwarningsys.__doc__                 sys.__stdout__              sys.exc_type                sys.hexversion              sys.pydebugsys.__egginsert             sys.__str__(                sys.excepthook(             sys.last_traceback          sys.setcheckinterval(sys.__excepthook__(         sys.__subclasshook__(       sys.exec_prefix             sys.last_type(              sys.setdlopenflags(sys.__format__(             sys._clear_type_cache(      sys.executable              sys.last_value              sys.setprofile(sys.__getattribute__(       sys._current_frames(        sys.exit(                   sys.long_info               sys.setrecursionlimit(sys.__hash__(               sys._getframe(              sys.exitfunc(               sys.maxint                  sys.settrace(sys.__init__(               sys._mercurial              sys.flags                   sys.maxsize                 sys.stderrsys.__name__                sys.api_version             sys.float_info              sys.maxunicode              sys.stdinsys.__new__(                sys.argv                    sys.float_repr_style        sys.meta_path               sys.stdoutsys.__package__             sys.builtin_module_names    sys.getcheckinterval(       sys.modules                 sys.subversionsys.__plen                  sys.byteorder               sys.getdefaultencoding(     sys.path                    sys.versionsys.__reduce__(             sys.call_tracing(           sys.getdlopenflags(         sys.path_hooks              sys.version_infosys.__reduce_ex__(          sys.callstats(              sys.getfilesystemencoding(  sys.path_importer_cache     sys.warnoptionssys.__repr__(               sys.copyright               sys.getprofile(             sys.platform                >>> sys.version'2.7.3 (default, Mar 14 2014, 11:57:14) \n[GCC 4.7.2]'>>> >>> sys.exit()#程序的退出命令root@kali:~/python/atm# pythonPython 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import tab>>> import sys>>> sys.path#查看运行路径,以下任何路径中有tab.py都可以运行['', '/usr/local/lib/python2.7/dist-packages/frida-4.4.0-py2.7-linux-i686.egg', '/usr/local/lib/python2.7/dist-packages/Pygments-2.0.2-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/prompt_toolkit-0.45-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/colorama-0.3.3-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/wcwidth-0.1.4-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/six-1.9.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/androguard-3.0-py2.7.egg', '/usr/lib/python2.7/dist-packages/pybloomfiltermmap-0.3.11-py2.7-linux-i686.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']>>> 

2、python的sys.argv窗口传参数执行命令

这里写图片描述

#!/usr/bin/python# --*-- coding:utf-8 --*--import sysprint sys.argv[0]#第一个参数为程序的本身print 'You arguments are: ',sys.argv[1],sys.argv[2]#在窗口手动输入第二个与第三个参数  --------------------------------------------root@kali:~/python/atm# cp /root/python/atm/tab.py /root/python/mod/root@kali:~/python/atm# root@kali:~/python/atm# root@kali:~/python# cd mod/root@kali:~/python/mod# sbash: s: 未找到命令root@kali:~/python/mod# lsroot@kali:~/python/mod# vi argv.pyroot@kali:~/python/mod# python argv.pyargv.pyYou arguments are: Traceback (most recent call last):  File "argv.py", line 8, in <module>    print 'You arguments are: ',sys.argv[1],sys.argv[2]#在窗口手动输入第二个与第三个参数IndexError: list index out of rangeroot@kali:~/python/mod# vi argv.pyroot@kali:~/python/mod# python argv.py hello xuweibo#此时在输入窗口必须给两个参数argv.pyYou arguments are:  hello xuweiboroot@kali:~/python/mod# 

3、python中的OS命令执行(非0值判断命令是否执行成功)

root@kali:~/python/mod# pythonPython 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> >>> >>> import os,tabTraceback (most recent call last):  File "<stdin>", line 1, in <module>ImportError: No module named tab>>> import os>>> >>> >>> import os,tab>>> os.system('df -h')文件系统                                                容量  已用  可用 已用% 挂载点rootfs                                                   19G  8.4G  9.5G   47% /udev                                                     10M     0   10M    0% /devtmpfs                                                    50M  564K   50M    2% /run/dev/disk/by-uuid/1d69c4b7-8825-4a6e-a4a4-e1ef94f2d30f   19G  8.4G  9.5G   47% /tmpfs                                                   5.0M     0  5.0M    0% /run/locktmpfs                                                   276M  564K  276M    1% /run/shm0#出现0值说明命令执行成功>>> os.system('uname')Linux0#出现0值说明命令执行成功>>> os.system('uname -a')Linux kali 3.18.0-kali1-686-pae #1 SMP Debian 3.18.3-1~kali4 (2015-01-22) i686 GNU/Linux0#出现0值说明命令执行成功>>> os.system('uname -dd')uname:无效选项 -- d请尝试执行"uname --help"来获取更多信息。256#出现非0值说明命令没有执行成功>>> test = os.system('uname -dd')uname:无效选项 -- d请尝试执行"uname --help"来获取更多信息。>>> print test256#可用通过非0值来判断命令没有执行成功>>> test = os.system('uname -a')Linux kali 3.18.0-kali1-686-pae #1 SMP Debian 3.18.3-1~kali4 (2015-01-22) i686 GNU/Linux>>> print test0#可用通过0值来判断命令已经执行成功>>> 

4、python中OS模块中popen()命令使用:

#第一种popen()使用方式:root@kali:~/python/mod# pythonPython 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import tab,os>>> df = os.popen('df -h')#使用df -h系统命令执行>>> print df.read()文件系统                                                容量  已用  可用 已用% 挂载点rootfs                                                   19G  8.4G  9.5G   47% /udev                                                     10M     0   10M    0% /devtmpfs                                                    50M  564K   50M    2% /run/dev/disk/by-uuid/1d69c4b7-8825-4a6e-a4a4-e1ef94f2d30f   19G  8.4G  9.5G   47% /tmpfs                                                   5.0M     0  5.0M    0% /run/locktmpfs                                                   276M  564K  276M    1% /run/shm>>> 第二种方式使用popen()>>> >>> for line in os.popen('df -h'):#循环读取...     print line... 文件系统                                                容量  已用  可用 已用% 挂载点rootfs                                                   19G  8.4G  9.5G   47% /udev                                                     10M     0   10M    0% /devtmpfs                                                    50M  564K   50M    2% /run/dev/disk/by-uuid/1d69c4b7-8825-4a6e-a4a4-e1ef94f2d30f   19G  8.4G  9.5G   47% /tmpfs                                                   5.0M     0  5.0M    0% /run/locktmpfs                                                   276M  564K  276M    1% /run/shm>>> #readlines():读取内容一次性有效,也可以使用readlines()保存值>>> df = os.popen('df -h')>>> df.readlines()['\xe6\x96\x87\xe4\xbb\xb6\xe7\xb3\xbb\xe7\xbb\x9f                                                \xe5\xae\xb9\xe9\x87\x8f  \xe5\xb7\xb2\xe7\x94\xa8  \xe5\x8f\xaf\xe7\x94\xa8 \xe5\xb7\xb2\xe7\x94\xa8% \xe6\x8c\x82\xe8\xbd\xbd\xe7\x82\xb9\n', 'rootfs                                                   19G  8.4G  9.5G   47% /\n', 'udev                                                     10M     0   10M    0% /dev\n', 'tmpfs                                                    50M  564K   50M    2% /run\n', '/dev/disk/by-uuid/1d69c4b7-8825-4a6e-a4a4-e1ef94f2d30f   19G  8.4G  9.5G   47% /\n', 'tmpfs                                                   5.0M     0  5.0M    0% /run/lock\n', 'tmpfs   >>> df = os.popen('df -h')>>> for line in df.readlines():...     print line ... 文件系统                                                容量  已用  可用 已用% 挂载点rootfs                                                   19G  8.4G  9.5G   47% /udev                                                     10M     0   10M    0% /devtmpfs                                                    50M  564K   50M    2% /run/dev/disk/by-uuid/1d69c4b7-8825-4a6e-a4a4-e1ef94f2d30f   19G  8.4G  9.5G   47% /tmpfs                                                   5.0M     0  5.0M    0% /run/locktmpfs                                                   276M  564K  276M    1% /run/shm>>> >>> >>> >>> os.system('pwd')/root/python/mod0>>> os.getcwd()'/root/python/mod'>>> os.chdir('/root/python')>>> os.system('pwd')/root/python0>>> os.getcwd()'/root/python'>>> os.chdir('/root/python/mod')>>> os.getcwd()'/root/python/mod'>>> os.system('pwd')/root/python/mod0>>> 

5、系统新建文件、查看目录、跨目录切换等

>>> >>> >>> os.system('pwd')#查看当前目录/root/python/mod0>>> os.getcwd()#查看当前目录'/root/python/mod'>>> os.chdir('/root/python')#切换目录>>> os.system('pwd')/root/python0>>> os.getcwd()'/root/python'>>> os.chdir('/root/python/mod')>>> os.getcwd()'/root/python/mod'>>> os.system('pwd')/root/python/mod0>>> 

6、time模块使用

>>> >>> import time>>> time.sleep(3)#停3秒在操作>>> time.time()#当前的时间戳1497076652.590095>>> >>> time.strftime('%Y')#定义时间格式'2017'>>> time.strftime('%y')'17'>>> time.strftime('%Y%m%d %H:%M:%S')'20170610 14:40:47'>>> time.strftime('%Y%m%d %h:%m:%s')'20170610 Jun:06:1497076859'>>> time.strftime('%y%m%d %h:%m:%s')'170610 Jun:06:1497076870'>>> time.strftime('%y%M%D %H:%M:%S')'174106/10/17 14:41:42'>>> time.strftime('%Y%M%D %H:%M:%S')'20174106/10/17 14:41:51'>>> time.strftime('%Y%m%d %H:%M:%S')'20170610 14:42:01'>>> time.strftime('%Y%M%d %H:%M:%S')'20174310 14:43:09'>>> time.strftime('%Y%M%D %H:%M:%S')'20174306/10/17 14:43:20'>>> time.strftime('%Y%m%d %H:%M:%S')'20170610 14:43:36'>>> time.strftime('%Y%m%D %H:%M:%S')'20170606/10/17 14:43:48'>>> 

7、datetime模块使用
当有人问你100天前是几号,用python实现代码:

>>> import datetime>>> (datetime.datetime.now() - datetime.timedelta(days = 100)).strftime('%Y-%m-%d')'2017-03-02'>>> >>> datetime.datetime.now()#当前时间datetime.datetime(2017, 6, 10, 14, 59, 8, 403621)>>> (datetime.datetime.now() - datetime.timedelta(days = 1)).strftime('%Y-%m-%d')#一天以前'2017-06-09'>>> (datetime.datetime.now() - datetime.timedelta(days = 3)).strftime('%Y-%m-%d')#三天以前'2017-06-07'>>> (datetime.datetime.now()+ datetime.timedelta(days = 3)).strftime('%Y-%m-%d')#三天以后'2017-06-13'>>> 

8、模块创建:
这里写图片描述

新建一个py文件作为一个日志模块
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

原创粉丝点击