zoukankan      html  css  js  c++  java
  • py14 各种常用模块合集

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319347182373b696e637cc04430b8ee2d548ca1b36d000

    sys和os模块

    http://www.runoob.com/python3/python3-os-file-methods.html

    http://book.luffycity.com/python-book/di-4-zhang-python-ji-chu-2014-chang-yong-mo-kuai/os-mo-kuai.html

    Python中 sys.argv[]的用法简明解释

          因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转裁和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白,只知道“sys.argv[0]表示代码本身文件路径”这点,其实还是不明其意。后来经过大量努力,多方求教才真正明悟了,谨以记录和分享,希望能从另一个角度给同在求索过程中的同学一点启发。

      sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

    下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。

    1 #test.py
    2 
    3 import sys
    4 a=sys.argv[0]
    5 print(a)

    将test.py保存在c盘的根目录下。

    在程序中找到 ‘运行’->点击->输入"cmd"->回车键   进入控制台命令窗口(如下图),先输入cd c:   (作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

     

    得到的结果是C: est.py,这就是0指代码(即此.py程序)本身的意思。

    然后我们将代码中0改为1 :

    a=sys.argv[1]

    保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

     

     得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

    那我们再把代码修改一下:

    a=sys.argv[2:]

    保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

    test.py a b c d e f

     

    得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

    应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

    watchdog模块,对文件创建删除等操作进行监控

    stringIO和bytesIO

    上下文管理器https://blog.csdn.net/hbnn111/article/details/78029011

    http://python.jobbole.com/82289/

    https://www.cnblogs.com/vamei/archive/2012/11/23/2772445.html

    hmac和hashlib

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0015108777177966ef0f4f8510a41b3b8c48cdcf7047b2d000

    StringIO经常被用来作为字符串的缓存,应为StringIO有个好处,他的有些接口和文件操作是一致的,也就是说用同样的代码,可以同时当成文件操作或者StringIO操作。

    Python学习笔记之optparse模块OptionParser

    optparse,是一个更够让程序设计人员轻松设计出简单明了、易于使用、符合标准的Unix命令例程式的Python模块。生成使用和帮助信息

    一、例子

    import StringIO
     
    s = StringIO.StringIO()
    s.write('www.baidu.com
    ')
    s.write('news.realsil.com.cn')
    s.seek(0)
    print '*' * 20
    print s.tell()
    print s.read()
     
    print '*' * 20
    print s.tell()
    print s.read()
     
    print '*' * 20
    print s.tell()
    print s.getvalue()
     
    print '*' * 20
    print s.tell()
    s.seek(-4,2)
    print s.read()

    运行结果:

    ********************
    0
    www.baidu.com
    news.realsil.com.cn
    ********************
    34

    ********************
    34
    www.baidu.com
    news.realsil.com.cn
    ********************
    34
    m.cn

    二、StringIO类中的方法:

    1. read
    2. readline
    3. readlines
    4. write
    5. writeline
    6. getvalue
    7. truncate
    8. tell
    9. seek
    10. close
    11. isatty
    12. flush

    ----------------------

    s.read([n])

    参数n限定读取长度,int类型;缺省状态为从当前读写位置读取对象s中存储的所有数据。读取结束后,读写位置被移动。

    ----------------------

    s.readline([length])

    参数length限定读取的结束位置,int类型,缺省状态为None:从当前读写位置读取至下一个以“ ”为结束符的当前行。读写位置被移动。

    ----------------------

    s.readlines([sizehint])

    参数sizehint为int类型,缺省状态为读取所有行并作为列表返回,除此之外从当前读写位置读取至下一个以“ ”为结束符的当前行。读写位置被移动。

    ----------------------

    s.write(s)

    从读写位置将参数s写入给对象s。参数s为str或unicode类型。读写位置被移动。

    ----------------------

    s.writelines(list)

    从读写位置将list写入给对象s。参数list为一个列表,列表的成员为str或unicode类型。读写位置被移动。

    ----------------------

    s.getvalue()

    此函数没有参数,返回对象s中的所有数据。

    ----------------------

    s.truncate([size])

    从读写位置起切断数据,参数size限定裁剪长度,缺省值为None。

    ----------------------

    s.tell()

    返回当前读写位置。

    ----------------------

    s.seek(pos[,mode])

    移动当前读写位置至pos处,可选参数mode为0时将读写位置移动至pos处,为1时将读写位置从当前位置起向后移动pos个长度,为2时将读写位置置于末尾处再向后移动pos个长度;默认为0。

    ----------------------

    s.close()

    释放缓冲区,执行此函数后,数据将被释放,也不可再进行操作。

    ----------------------

    s.isatty()

    此函数总是返回0。不论StringIO对象是否已被close()。

    ----------------------

    s.flush()

    刷新内部缓冲区。

    ----------------------

    BytesIO

    StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。

    BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:

    >>> from io import BytesIO
    >>> f = BytesIO()
    >>> f.write('中文'.encode('utf-8'))
    6
    >>> print(f.getvalue())
    b'xe4xb8xadxe6x96x87'
    

    请注意,写入的不是str,而是经过UTF-8编码的bytes。

    和StringIO类似,可以用一个bytes初始化BytesIO,然后,像读文件一样读取:

    >>> from io import BytesIO
    >>> f = BytesIO(b'xe4xb8xadxe6x96x87')
    >>> f.read()
    b'xe4xb8xadxe6x96x87'


  • 相关阅读:
    大数据开源组件汇总
    centos6环境下大数据组件单独安装配置
    大数据平台架构组件选择与运用场景
    [LeetCode] 210. 课程表 II
    [LeetCode] 209. 长度最小的子数组
    [LeetCode] 208. 实现 Trie (前缀树)
    [LeetCode] 207. 课程表
    [LeetCode] 206. 反转链表
    [LeetCode] 205. 同构字符串
    [LeetCode] 204. 计数质数
  • 原文地址:https://www.cnblogs.com/wlx97e6/p/9441221.html
Copyright © 2011-2022 走看看