Skip to content
Chaobin Zhang edited this page Oct 4, 2015 · 5 revisions

args

任意长度的参数列表,其类型是一个元组(tuple)。使用:

>>> def print_everything(*args):
        for count, thing in enumerate(args):
...         print '{0}. {1}'.format(count, thing)
...
>>> print_everything('apple', 'banana', 'cabbage')
0. apple
1. banana
2. cabbage

kwargs

Keyword argument lists,是一个关键字参数,它是一个字典(dict).

>>> def table_things(**kwargs):
...     for name, value in kwargs.items():
...         print '{0} = {1}'.format(name, value)
...
>>> table_things(apple = 'fruit', cabbage = 'vegetable')
cabbage = vegetable
apple = fruit
  • 同时使用*args和kwargs时,*args参数必须列要在kwargs前。

Reference:

Traverse through the files in a directory?

import glob

for file in glob.glob('*.log'):
    print file
import os

for file in os.listdir('.'):
    print file

Parse arguments

import argparse

def main(argv):
    parser = argparse.ArgumentParser()
    parser.add_argument('log_dir', metavar='directory', type=str, nargs=None,
        help='The directory containing .log files.')
    log_dir = vars(parser.parse_args(argv))['log_dir']

if __name__ == '__main__':
    main(sys.argv[1:])

Default Parameter Values in Python

>>> def function(data=[]):
...     data.append(1)
...     return data
...
>>> function()
[1]
>>> function()
[1, 1]
>>> function()
[1, 1, 1]

正则

# r.content = '...... 计算:77+70=? <input type="hidden" name="formhash" value="52b50351"> ......'
re.findall(u'(\d+)\+(\d+)=.+?<input type="hidden" name="formhash" value="(.+?)">', r.content, re.S)
Clone this wiki locally