把字符串的第一个字符大写

string.capitalize()

翻转 string 中的大小写

string.swapcase()

转换 string 中的小写字母为大写

string.upper()

转换 string 中所有大写字符为小写

string.lower()

格式化字符串

string.format()
-----------------
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

string.join(seq)
-----------------
str = "-";
seq = ("a", "b", "c"); 字符串序列
print str.join(seq);

把 string 中的 old 替换成 new ,如果 max 指定,则替换不超过 max 次.

str.replace(old, new[, max])
# old -- 将被替换的子字符串。
# new -- 新字符串,用于替换old子字符串。
# max -- 可选字符串, 替换不超过 max 次

已 string 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+ 个子字符串

str.split(str="", num=string.count(str)).
# str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
# num -- 分割次数。默认为 -1, 即分隔所有
encoding    编码方式
ensure_asscii           json.dumps(data,ensure_asscii=False)
str.strip() 去除头尾指定内容  默认 \r\n
dict        转换成字典

formRequest 带参数请求
formdata    请求参数
scrapy.formRequest()     

extract     取出结果
extract_first           取出第一个结果
xpath().extract()
yield scrapy.FormRequest(
    url= "http://192.168.40.6:8000/api/v1/get%sInfo.do" % key, 
    method="POST",
    formdata={
        'page': '%s' % page
    },
    meta={
        'key': key
    },
    callback=self.parse_json
)
class EmployeeCrawlPipeline(object):
    def __init__(self):
        # 初始化json  文件,设置编码格式为urf-8
        self.file_no = open("sale_fact.json", 'w+', encoding='UTF-8')
        self.file_e = open("employee.json", 'w+', encoding='UTF-8')

    def process_item(self, item, spider):
        # 循环遍历所有的item,然后进行判断,如果key值为no_detail_data的,就将item数据写入sale_fact.json文件
        # 如果key值为detail_data_e的,就将item数据写入employee.json文件
        for key in item.keys():
            if key == 'no_detail_data':
                line = json.dumps(dict(item)[key], ensure_ascii=False) + ',\n'
                self.file_no.write(line)
            if key == 'detail_data_e':
                line = json.dumps(dict(item)[key], ensure_ascii=False) + ',\n'
                self.file_e.write(line)
        return item

Python re.match search findall区别

函数定义返回值
re.search(pattern, string, flags=0)搜索第一个匹配的字符串Nonematch对象
re.match(pattern, string, flags=0)搜索第一个以pattern开头的字符串Nonematch对象
re.findall(pattern, string, flags=0)搜索所有匹配列表,如果有多个分组,则返回元组的列表

Python正则表达式中的 re.S,re.M,re.I 的作用

修饰符描述
re.I使匹配对大小写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多行匹配,影响 ^ 和 $
re.S使 . 匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 w, W, b, B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。