• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

6_10

开发技术 开发技术 3小时前 4次浏览

常用模块的介绍

3.os模块(知道有这么个功能就行)

链接:https://www.cnblogs.com/linhaifeng/articles/6384466.html#_label3
   
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
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.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
__file__  返回当前文件的路径


os.system("bash command")  运行shell命令,直接显示,相当于在pycharm中运行了cmd,但是会直接显示为GBK模式,不能正常打印中文(pycharm为utf-8)。此时,可以用subprocess模块
   import subprocess
   obj = subprocess.Popen('tasklist',shell=True,
                    stdout=subprocess.PIPE,        
                    stderr=subprocess.PIPE
                    )
   print(res1.decode('gbk'))
     注:obj.stdout为子进程正常运行的结果,显示为b模式
         obj.stderr为子进程运行失败的结果,显示为b模式

 

补充:函数的参数

1.形参和实参

    形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
   
   注:参数的本质一定是一个确定的值(*****)
   import random
   print(random.choices([random.randint(2, 6)], k=4))
   结果:[2, 2, 2, 2]或[5, 5, 5, 5]或···
  结果中的4个数一定相等,因为对于random.choices()来说,参 数random.randint(2, 6)是一个确定的值

2.位置实参和关键字实参

位置参数(形参和实参):按照从左到右的顺序定义的参数
关键字实参:按照key=value的形式定义的实参

二者可以混用:
1. 关键字实参必须在位置实参后面
   2. 对同一个形参不能重复传值

3.默认形参

可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
注意的问题:
1. 默认值只在定义时赋值一次(指向的是地址)
       m=2
       def func(x,y,z=m)
      print(x,y,z)
       m=10
       func(1,1)
       结果:1,1,2
       
2. 默认参数的定义应该在位置形参后面
       
3. 默认参数通常应该定义成不可变类型,如果必须可变,则写
       def func(x,y,z=None)
      if z == None
          z=[]    

4.可变形参

  • 1.*args:针对溢出的位置实参
       多余的参数会被写成元组并存入args
       
    2.**kwargs:针对溢出的关键字实参
       多余的参数会被写成字典并存入kwargs
    def func(**kwargs):
      print(kwargs)
    func(a=6,b=3,c=8)
    结果:{'a': 6, 'b': 3, 'c': 8}
     
    3.实参前面加*:对列表打散,再传参数
    func(*[1,2,3,4])  #相当于func(1,2,3,4)
       *字典 =  *字典.keys()
       
     实参前面加**:功能一样,但后面只能跟字典

    4.*后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递
    def foo(x,y,*args,a=1,b,**kwargs):
           ···
        foo(1,2,3,4,5,b=3,c=4,d=5)
        结果:x=1,y=2,args=(3,4,5),a=1,b=3,kwargs= {'c':4,'d':5}

 

注:

运用切片对字符串和列表进行截取
def func2(seq):
   return seq[::2]   #顾头不顾尾

 


程序员灯塔
转载请注明原文链接:6_10
喜欢 (0)