34篇 python related articles

python中合并两个list

如下,有两个list需要合并

list1 = ['a', 'b', 'c']
list2 = ['c', 'd', 'e']

期望合并结果为

['a', 'b', 'c', 'd', 'e']

以下方法可以合并

list1 + list2
list1.extend(list2)
[*list1, *list2]
list1 += list2
More ~

vscode中 flake8 忽略检查项

主要是python.linting.flake8Args 中加上 --ignore参数 即可

{
    "python.linting.flake8Enabled": true,
    "python.formatting.provider": "yapf",
    "python.linting.flake8Args": [
        "--max-line-length=248",
        "--ignore=F403,F405"
    ],
    "python.linting.pylintEnabled": false

}
More ~

python中用点 "."来访问多层字典值

标题可能有点难以描述。举个例子。我有一个配置文件。

CONFIG = {
    'app_name': 'ZiXi',
    'mysql': {
        'host': '127.0.0.1',
    }
    'version': 'v2.0.11',
}

通常可以通过CONFIG['mysql']['host'] 这种方式访问,但我们还是想更简单点访问。如
CONFIG.mysql.host ,那么有几种方法。

More ~

python-feedgen: 一个生成atom, rss及podcasts源的python库

项目地址:https://github.com/lkiesow/python-feedgen
文档地址:https://lkiesow.github.io/python-feedgen/

示例:

from feedgen.feed import FeedGenerator


def feed():
    """
    Generate atom feed
    """
    entries = parse_posts(0, C.feed_count)
    fg = FeedGenerator()
    fg.id(str(len(entries)))
    fg.title(C.title)
    fg.subtitle(C.subtitle)
    fg.language(C.language)
    fg.author(dict(name=C.author, email=C.email))
    fg.link(href=C.root_url, rel='alternate')
    fg.link(href=make_abs_url(C.root_url, 'feed'), rel='self')
    for entry in entries:
        fe = fg.add_entry()
        fe.id(entry.get('url'))
        fe.title(entry.get('title'))
        fe.published(entry.get('date'))
        fe.updated(entry.get('updated') or entry.get('date'))
        fe.link(href=make_abs_url(C.root_url, entry.get('url')), rel='alternate')
        fe.author(dict(name=entry.get('author'), email=entry.get('email')))
        fe.content(entry.get('body'))
 
    atom_feed = fg.atom_str(pretty=True)
    return atom_feed
More ~

python中执行shell command

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')
More ~