技巧收集-M1709
2017.09
在macOS中直接复制文件路径,在Finder中选中文件,按下快捷键:Command
+ Option
+ C
以KB,MB,GB方式显示文件大小
1 | ls -lh |
删除超大文本文件的特定行数
1 | sed -e '10000,50000d' xxx.txt > new_xxx.txt //删除xxx.txt的第10000行到50000行的所有内容,并将结果保存到new_xxx.txt |
切分超大文本文件
1 | split -b 2G -d -a 2 deletelines.txt da //把超大文件切分为多个文件,每个文件2GB,前缀为da,后缀为2位数字 |
修改Linux当前用户密码
1 | passwd |
使用Python打开一个未知编码的文件:
1 | with open("your_file", 'rb') as fp: |
2017.08
在SSH + Tmux中,如果想复制,按住Alt
或者Option
键再选择就可以复制了。
关闭requests的SSL警告
1 | import requests |
在VIM中,Crtl
+ V
Ctrl
+ A
可以输出特殊符合^A
,把A改为可以得到^M
2017.07
在Python中,pymongo的find方法返回的是一个生成器,只有在迭代的时候才会执行里面的具体代码去读MongoDB。但是在Golang的Mgo包中,如果想让Find返回一个迭代器而不是直接把所有结果全部返回,就需要手动指定:
1 | type xInfo struct { |
2017.06
在Golang中,使用MySQL的事务:
1 | // paraArray为一个channel,里面是更新所需要的参数 |
由于更新MySQL会锁表,因此使用多个goroutine来更新MySQL,效果可能还不如直接在主线程中更新来的高。
在Golang中,使用goroutine太多反而会导致性能下降。
2017.05
在Python中,可以使用>
或者>=
来判断一个集合是不是另一个集合的子集。只有是子集才会返回True
2017.04
在MongoDB中,通过_id来更新数据:
1 | from bson.objectid import ObjectId |
在Python 3中,计算两个日期相隔了多少秒:
1 | import datetime |
Scrapy中,通过覆写items.py中,每个item的__repr__方法,可以减少打印出来的Log信息。
1 | class XXXItem(Item): |
在VIM粘贴Python代码的时候,缩进会一不小心爆炸。为了避免这个问题,应该先在normal模式输入
1 | :set paste |
回车,再按i,再粘贴。这样Python的缩进就不会乱掉了。
Selenium的Debug级的Log有时候打得太多了,为了去掉Selenium的Debug Log又不影响其他部份的Debug Log,可以使用如下命令完成:
1 | import logging |