Python - 部分内置函数及常用方法(lambda,os,时间转换,执行系统命令)

  1. lambda:匿名函数,语法: lambda [parm_list]:表达式
  res = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])
  print(list(res))  # [2,4,6,8]
  1. filter: 过滤函数,语法:filter(func, iterable), 其中func是过滤规则,iterable是要过滤的可迭代对象,将func返回 True 的元素放到新列表中
  print(list(filter([1,2,3,4,5])))
  1. map: 会根据提供的函数对指定序列做映射。语法:map(function, iterable, ...) 可以有多个可迭代序列,与filter不同的是,map可以有多个iterable,返回包含每次 function 函数返回值的新列表
  res = map(lambda x, y: x * y, [1, 2, 3, 4, 5], [2, 3, 4, 5, 6])
  print(list(res))  # [2, 6, 12, 20, 30]
  1. round: 返回浮点数x的四舍五入值。语法:round( x [, n] ),其中x是数,n表示小数点后几位,默认为0
  print(round(11.51234))  # 12
  1. os: 文件/目录方法
    os模块提供了非常丰富的方法来处理文件和目录常用的方法如下所示:
序号 方法 描述
1 os.access(path, mode) 检验权限模式
2 os.chdir(path) 改变当前工作目录
3 os.chflags(path, flags) 设置路径的标记为数字标记
4 os.chmod(path,mode) 更改权限
5 os.chown(path,uid,gid) 更改文件所有者
6 os.chroot(path) 更改当前进程的根目录
7 os.close(fd) 关闭文件描述符fd
8 os.closerange(fd_low,fd_hight) 关闭所有文件描述符,从fd_low(包含)到fd_high(不包含),错误会忽略
9 os.dup(fd) 复制文件描述符
10 os.getcwd() 返回当前工作目录
11 os.listdir(path) 返回path指定的文件夹包含的文件或文件夹得名字的列表。
11 os.work(path) 遍历目录树,返回当前路径、目录列表、当前目录下所有文件
12 os.makedirs(path[,mode]) 递归文件夹创建函数。像mkdir(),但创建的所有intermediate-level文件夹需要包含子文件夹。
  1. python执行系统命令
  • os.system(cmd)
    在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态,但并不会在当前代码中有返回数据

    >>>import os
    >>>os.system('ls -l python*')
    lrwxrwxrwx 1 root root      10 Aug 18  2022 python3 -> python3.10
    -rwxr-xr-x 1 root root 5913032 Jun 11  2023 python3.10
    0
    >>>
    
  • os.popen(cmd)
    不仅执行命令而且返回执行后的信息对象(常用于需要执行命令后的返回信息),是通过一个管道文件将结果返回

    >>> res = os.popen('ls -l python*')
    >>> print(res.read())
    lrwxrwxrwx 1 root root      10 Aug 18  2022 python3 -> python3.10
    -rwxr-xr-x 1 root root 5913032 Jun 11  2023 python3.10
    
  • commands 模块 (python3中已移除,使用subprocess代替)

    • getoutput 获取执行命令后的返回信息
    • getstatus 获取执行命令的状态值(执行命令成功返回数值0,否则返回非0)
    • getstatusoutput 获取执行命令的状态值以及返回信息
    import commands
    status, output = commands.getstatusoutput('ls -l')
    
  • subprocess 模块

    1. subprocess.Popen: 在后台新建一个进程执行命令
      语法:subprocess.Popen(args, shell=False,cwd=None,encoding=None)

      from subprocess import Popen, PIPE
      proc = Popen('ls -l', shell=True [, stdin=PIPE, stdout=PIPE,encoding='utf-8'])
      # shell=True表示使用shell执行命令,参数为字符串时使用shell=True
      proc.pid  # pid
      proc.terminate()  # 杀死进程相当于proc.kill()
      proc.poll()  # 查看后台进程是否结束,None为未结束,0为正常结束,其他有-2,-9,-15,表示被终止
      proc.returncode  # proc.poll()的返回代码(0,-2,...)
      stdout=PIPE  # 设置输出方式
      encoding='utf-8'  # 设置输出编码格式
      proc.communicate()  # 配合stdout计encoding使用,输出为(stdout, stderr)
      proc.args  # 输入执行命令
      proc.wait()  # 阻塞直到进程结束
      
  1. 时间转换(time)
    a. 获取当前时间戳

    import time
    time_now = time.time()
    # 1646188764.5619113
    

    b. 格式化时间

    import time
    now = time.strftime("%Y-%m-%d %H:%M:%S")
    # '2022-03-02 10:39:43'
    format_time = time.strftime("%Y-%m-%d %H:%M:%S", 时间元组)
    format_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime([时间戳]))
    

    c. 格式化时间转时间戳

    import time
    
    str_time = '2022-02-01 16:15:12'
    time_stamp = time.mktime(time.strptime(str_time, "%Y-%m-%d %H:%M:%S"))
    # 1643703312.0
    

    d. 时间戳转时间元组

    import time
    time_tuple = time.localtime(1646188764.5619113)
    # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=10, tm_min=39, tm_sec=24, tm_wday=2, tm_yday=61, tm_isdst=0) 
    

    e. 格式化时间转时间元组

    import time
    time_tuple = time.strptime('2022-03-02 10:39:43', '%Y-%m-%d %H:%M:%S')
    # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=10, tm_min=39, tm_sec=43, tm_wday=2, tm_yday=61, tm_isdst=-1)
    

    d. 时间元组转时间戳

    import time
    time_tuple = time.strptime('2022-03-02 10:39:43', '%Y-%m-%d %H:%M:%S')
    time_stamp = time.mktime(time_tuple)
    print(time_stamp)  #1646188783.0
    

    f. 获取今天日期

    import time, datetime
    
    today1 = time.strftime("%Y-%m-%d")
    # '2022-03-02'
    today2 = datetime.date.today()
    # datetime.date(2022, 3, 2)
    today2_tuple = datetime.date.today().timetuple()
    # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=61, tm_isdst=-1)
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容