杂货铺

1.sql中where和having的区别

where是一个约束声名,使用where来约束来之数据库的数据,where是在结果返回之前起作用的,且where中不能使用聚合函数;

having是一个过滤声名,是在查询返回结果集以后对查询结果进行的过滤操作,在having中可以使用聚合函数;

用having就一定要和group by连用,用group by不一定有having;

用having就一定要和group by连用;

2.打印出文件的指定行

sed -n "3p;5p" test      #打印出文件的第三行和第五行

sed -n "3,5p" test        #打印出文件的第三到第五行

3.selenium使用webdriver.find_element_by_id("kw").send("美女")时报错:UnicodeDecodeError: 'utf8' codec can't decode byte 0xe7 in position 0: unexpected end of data。

解决办法:

方法一:webdriver.find_element_by_id("kw").send(u"美女")

方法二:webdriver.find_element_by_id("kw").send("美女".decode("utf-8"))

4.教你阅读python开源项目源码

https://blog.csdn.net/xiaoxianerqq/article/details/79296708

5.变量指向问题

今天在群里看到一个有趣的问题,不小心就会掉坑里去,问题是这样的:

l = []
a = {"num":0}
for i in range(4):
    a["num"] = i
    l.append(a)
print l

输出结果:
[{'num': 3}, {'num': 3}, {'num': 3}, {'num': 3}]
这结果和预期相差有点大,然后打断点排查,才发现是变量的问题,对于a,除了指向字典中的a,同时也指向了列表中的a,在改变a值时,是全局改的,正确代码应该是这样的:

l = []
for i in range(10):
    a = {"num": i}
    l.append(a)
print l

6.解读字符串拼装成json,方便其他语言解析数据

file_path = 'json.txt'
file_obj = open(file_path, "r", encoding='UTF-8')
all_lines = file_obj.readlines()
data = {}
key = 1
for line in all_lines:
line_info = line.split(',')
if line_info:
info = {"name": line_info[0], "url": line_info[1].replace(" ", "")}
data[key] = info
key += 1
file_obj.close()
file = open('json.json', 'w', encoding='utf-8')
print (data)
# json.dump(data, file, ensure_ascii=False)
file.writelines(json.dumps(data))
  

其中,json.txt文本内容格式如下:

111111,http://www.baidu.com
222222,http://www.sina.com
333333,http://www.google.com
444444,http://www.163.com
555555,http://www.qq.com
666666,http://www.y0701.com
7.Windows系统使用命令行查询占用端口程序并杀死进程
(1)查看占用端口进程
netstat -ano | findstr "5037"
(2)查看该进程是哪个程序启动的
tasklist | findstr "21152"
(3)结束进程
  
taskkill /f /pid 21152

 8.构建代理IP池

http://blog.csdn.net/c406495762/article/details/72793480

 
原文地址:https://www.cnblogs.com/python-kp/p/9754853.html