python学习笔记
2015-10-22 15:58
543 查看
修改编码方式,适用于 2.7
#! /usr/bin/env python # -*- coding: utf-8 -*- import sys reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入 sys.setdefaultencoding('utf-8')
以下为python 3.4版本
数据库导出csv
imporr sqlite3, csv, codecs con = sqlite3.connect('filename') cu = con.cursonr() # 获取cursor cu.execute('select * from shop_list') # 执行 data = cu.fetchall() # 获得全部数据 # 列名 colnames = ['shopId', 'shopLogo' , 'shopMaster','shopName', 'shopSn', 'shopTotalGoods'] # 'goodsId' , 'appointmentedStatus' , 'goodsInfo' , 'shopId' , 'title' , 'goodsMaterialId' , 'goodsSn' , 'goodsTypeId' , 'has_cert' ,'isAppointmented' , 'isConcern' , 'isRecommended' ,'isimplant' , 'orderStatus' , 'price', 'priceRangeName' , 'quantity' , 'goodPattern', 'goodPatternId' , 'goodsCateId', 'goodsCateName'] # 为了兼容OSX与windows,先打开文件,写入codecs.BOM_UTF8后关闭,然后追加csv csvfile = open('商家信息.csv', 'wb') csvfile.write(codecs.BOM_UTF8) csvfile.close() csvfile = open('商家信息.csv', 'a', encoding = 'utf-8') writers = csv.writer(csvfile) writers.writerow(colnames) for line in data: writers.writerow(line) csvfile.close()
url 编码
import urllib.parse str_test = '李丕栋' str_code = urllib.parse.quote(str_test) str_decode = urllib.parse.unquote(str_code) print(str_decode) print(str_code)
多进程
import multiprocessing import time import random import os import math def func(msg): math.floor(random.random()) # for i in range(3): # print(msg) # time.sleep(1) time.sleep(5) print('Run task %s...%s' % (os.getpid(), msg)) if __name__ == "__main__": start = time.time() pool = multiprocessing.Pool(processes= 6) # 设置进程数 for i in range(100): msg = "hello %d" %math.floor(random.random()*4) pool.apply_async(func, (msg, )) pool.close() pool.join() print("Sub-process(es) done.") end = time.time() print('spend time %2fs'%(end-start))
logging
logging 调试代码更方便,自己封装了一个函数def log(file_name, logger_name='root',set_level=logging.DEBUG): """ 生成log对象 :param file_name: log名 :param logger_name: logger name :return: logger对象 """ logger = logging.getLogger(logger_name) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(filename)s[line:%(lineno)d] - %(message)s", "%Y-%m-%d %H:%M:%S") handler = logging.FileHandler(file_name) handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(set_level) return logger
format
'{name},{age}'.format(age=18,name='kzc') # 'kzc,18' class Person(object): def __init__(self, name, age): self.name=name self.age=age john=Person('join', 26) print('{person.name} is {person.age} years old'.format(person=john))
多线程下载 shell
axel -n 线程数 网址相关文章推荐
- Python简介
- Python 2.7教程
- python 多进程间交换信息与共享信息
- Eclipse和PyDev搭建完美Python开发环境(Windows篇)
- python 入门(2)
- Python 3 爬虫之抓取当当网特价书名
- python入门1(慕课网)
- Python正则表达式指南
- Python 正则学习
- Python截取路径中的文件名
- python的类属性和实例属性
- 学习笔记 提取常量和一个简单的聊天系统(python)from python基础教程
- python SyntaxError: Non-ASCII character ‘\xe5′ in file
- python脚本中的#!/usr/bin/python
- Openwrt下安装Python3.5运行出现异常:Fatal Python error: Py_Initialize: Unable to get the locale encoding
- Python正则表达式的七个使用范例
- python内置函数大全
- Python模拟登陆新浪微博
- (2)python变量类型
- 使用python 修改文件内容