标签 python 下的文章

python3 适用,执行shell命令

使用subprocess

import subprocess

def run(args):
    out = subprocess.Popen(args, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True)
    stdout, stderr = out.communicate()
    return stdout

print(run(['ls', '-l']))

使用os.system

import os
os.system('ps -ef')

使用os.popen

import os
os.popen('ls')

*args**kwargs 均为可变参数,方便记忆可以理解为 *args是列表形式的多个参数,不过它传值不是以list, 就是func(arg1, arg2, arg3...)
**kwargs可以理解为字典形式的多组key, value键值对,不过它传值也不是字典,而是func(a=1, b=2, c=3...)。

它们同时出现在func的定义中时,*args在前, **kwargs在后

**kwargs通常用在类的初始化多个配置项参数值传递。举一个pymongo的例子:

class MongoClient(common.BaseObject):
    def __init__(
            self,
            host=None,
            port=None,
            document_class=dict,
            tz_aware=None,
            connect=None,
            type_registry=None,
            **kwargs):

- 阅读剩余部分 -

推导式?什么东西?我还真头一回听说这名词,以为是链表、二叉树之类的问题,面试官这样问,只能摇头不解。

回来查下推导式,原来就是常用的list的for in for,有点想笑,这么简单的列表创建问题问得让我摸不着头脑,有些术语听起来很深奥,其实就是常用的表达式,这好比你去问别人设计模式,你用过什么设计模式,什么工是工厂模式?什么是单例模式等等,虽然对术语可能一知半解或者解释不清,其实就是常常在用的。

newlist = [i for i in range(1, 100) if i%3==0]