36、掌握字符串的基本用法

都是些很常规的东西,strip、split、zfill等

37、按需选择sort或sorted

两者主要区别

  • sort作用于原列表
  • sorted作用于任意对象,并返回新对象

38、使用copy模块深拷贝对象

  • 浅拷贝只拷贝地址,会对原内容进行修改,用的是copy.copy
  • 深拷贝拷贝了引用和引用的对象,用的是copy.deepcopy

39、用counter进行计数统计

counter属于字典类的容器对象,更优雅

  • update用于更新
  • subtract用于元素统计值相减

40、深入掌握configparser

笔者还没接触过这个库
用于配置文件
这里讲的是些需要注意的小地方和技巧
先记一笔,以后用到再说

41、使用argparse处理命令行参数

这个还是老了
现在用的是docopt
但了解了下几个库的递进,还是有点意思的

42、使用pandas处理大型csv文件

csv模块在处理大型csv文件时能力不足
用pandas
不过现在数据处理大都是用pandas的

43、一般情况使用ElementTree解析XML

现在都是这么做的

44、模块pickle优劣

这个模块笔者没接触过
用于序列化

优点:

  • 接口简单使用容易
  • 存储格式有通用性
  • 支持数据类型广泛
  • 模块可以进行扩展
  • 自动维护对象引用

限制:

  • 不能保证操作的原子性
  • 存在安全性问题
  • 不同语言之间兼容问题

45、json

书上是对json进行了简单介绍
笔者前段时间学习爬虫刚好用过json
这是现在流行的数据存储交换用的库

46、用traceback获取栈信息

作为开发人员和维护人员
traceback可以定位异常
一篇不错的参考

47、用logging记录日志信息

没多的好说的
工程上的常规操作
和traceback结合使用

48、使用threading编写多线程

巧了,笔者刚在学爬虫的时候学了多线程threading
书上写了几个简单例子

49、使用queue使得多线程编程更安全

这个笔者学到了
之前学爬虫的时候用到了
但是当时没多注意

书上的一个例子如下:

import os
import Queue
import threading
import urllib2

class DownloadThread(threading.Thread):
	def __init__(self,queue):
		threading.Thread.__init__(self)
		self.queue=queue
	def run(self):
		while True:
			url = self.queue.get()
			print(slef.name+"begin download"+url)
			self.download_file(url)
			self.queue.task_done()
			print(slef.name+"download completed")
	def download_file(self,url):
		urlhandler=urllib2.urlopen(url)
		frame=os.path.basename(url)+".html"
		with open(fname,"wb") as f:
			while True:
				chunk=urlhandler.read(1024)
				if not chunk: break
				f.write(chunk)

if __name__=="__main__":
	urls=["http://wiki.python.org/moin/WebProgramming",
	      "https://createspace.com/3611970"
	      ]
	queue=Queue.Queue()
	for i in range(5):
		t=DownloadThread(queue)
		t.setDaemon(True)
		t.start
	for url in urls:
		queue.put(url)
	queue.join()

结语

有几个建议不错
有几个还是书比较老了不适用了