这篇是在做python爬虫时候,遇到的一些零碎的python知识,在这里做个备忘,回头有时间会回来做个整合。 1.list转str

string=",".join(list)  #得到的string是unicode编码的
string=" ".join(list)  #这一句和上一句区别是list里面每一项分隔符从逗号改成了空格

2.str转list

list=split(str)

3.outerHTML and innerHTML and innerText? ①innerHTML 和outerHTML 在设置内容时包含的HTML会被解析,而innerText和outerText则不会 ②在设置时,innerHTML和 innerText仅设置标签内的文本,而outerHTML和outerText设置包括标签在内的文本

这里写图片描述

P.s. innerHTML是符合W3C标准的属性,而innerText只适用于浏览器(同样还有outerText和outerHTML),因此尽可能使用innerHTML,而少用innerText。

W3C定义innerHTML:innerHTML属性设置或返回表格行的开始和标签之间的HTML。

4.去头去尾.字符串方法 strip() #如果括号内没有填东西就是默认去掉首尾的单个或连续的空格 lstrip(‘,’) #这样就是去掉最左(首部)的单个或者连续的逗号,lstrip的l是left的意思,同样默认去掉最左的单个或连续的空格 rstrip(‘\n’) #而这样是去掉最右(尾部)的的那个或者连续的换行符

5.time.sleep(secs)程序暂停secs秒 time.time()拿来计算程序耗时!

6.exit()交互式shell中退出 sys.exit()退出程序,会引发SystemExit异常 os.__exit()直接退出解释器

7.os.path.exists(path) 判断是否有存在path路径 os.makedirs(directory)创建目录

8.python的is和==的区别: is:比较引用是否相同 ==:比较内容是否相同

9.python2.*: 任意内置类型派生出的类,都属于新式类(newestyle class) 任意不由内置类型派生出来的类,成为经典类(classic class) python3.0: 新旧类不再区分,所有类都派生自内置的object类,所有类都属于新式类

10.python2.7的sys.defaultencoding字符串默认编码格式是ASCII,这也是许多UnicodeDocodeError:’ascii’codec can’t decode byte…的原因 而开头那句# encoding:utf-8是定义源码的编码格式,如果没有这句,那么该源码中不可以包含中文字符串

11.对于decode和encode的简单原则: ①不要对str使用encode(用非unicode编码格式的str来encode都会报错) ②不要对unicode编码的使用decode ③可以吧python想象成一个池子,所有流进这个池子都必须变成unicode,然后流出这个池子也是unicode,因为python本身自己就是用unicode的,一般都是先decode成unicode,最后再encode成其他格式,比如utf-8

12.os模块往往与系统操作有关,而sys模块往往是指python解释器行为 13.python中单引号和双引号无区别,而三引号则用于多行输入(尽量用单引号,因为不用shift,够优雅~)

13.pip show foo 的foo包要先install了才能show得出信息,所以不要用pip show去查看pip源里面有没有你需要的包,要用pip search|grep foo 这里的foo是指任意的东西,有点像*这个,stackoverflow或者github等等很多网站都会出现foo这个单词,而该死的翻译给我翻译为’富’!!

14.[virtualenv下]from PIL import Image时候,因为因为我同一层也有一个脚本叫PIL.py,所以会优先查找本层目录是否存在PIL,再检查该PIL.py中是否有Image类,我天真以为virtualenv中所有import 行为都是会在 */libpython2.7/site-packges/下面寻找,结果就是报给我说找不到Image方法,那是肯定的,因为我的这层中的PIL.py里面压根就没有Image方法。所以给自己脚本起名字的时候,尽量避开一些比较出名的模块的名字。