您的位置:首页 > 编程语言 > Python开发

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 线程数 网址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: