第一部分 编程基础
@表达式
**
%
//
@
>>> int(3.4)3
>>>round(3.555,2)
3.56
@判断条件时:0和0.0和‘’都是False
@终止进程
sys.exit()
@
>>> m=[1,2,3]>>> print(m.pop())3
>>> print(m)
[1, 2]
@陷入无限循环时
ctrl+c
@
print('cats','dog',sep=',')#Seperate
cats,dog
@try…except中,try里面有多个的话,一旦有触发except的,就不会再继续try。
@多重赋值
cat=['fat','black','loud']
size,color,disposition=cat
@sort()使用ASCII码排序,排序大写在小写前面
>>>spam=['a','Z','b','z']>>>spam.sort(key=str.lower)#lower后面没有括号
>>>spam
['a', 'b', 'Z', 'z']
@字典中的get和setdefault
items={'apple':3,'cup':2}print("i get {0} apples and {1} eggs".format(items.get('apple',0),items.get('egg',3)))print(items)print('---')print("i get {} apples and {} eggs".format(items.setdefault('apple',0),items.setdefault('egg',3)))print(items)
@迭代字符串,数各字母数
>>> message='lalalalawoshimaibaodexiaohangjia'
>>> count={}>>> for character inmessage:
count.setdefault(character,0)
count[character]=count[character]+1
>>> print(count)
@漂亮打印
importpprint>>> pprint.pprint(count)
@方法
index()
insert()
remove()
tuple()
str()
list()
@转义字符:反斜杠
@is字符串方法
isalpha()
isalnum()
isdecimal()
isspace()
只有字母;
只有字母和数字;
只有数字;
只有空格、制表符、换行符。
@其它字符串方法
startswith()
endswith()
join()
split()
center(20,'=')
strip('abc')
@监控鼠标和键盘
https://www.jb51.net/article/146800.htm
调用剪切板(自制密码保管器)
importpyperclip,sys
pw={...}
count=sys.argv[1]
pyperclip.copy(pw[count])#保存到剪切板,直接鼠标右键粘贴就行
print(pyperclip.paste())#打印剪切板里的内容
第二部分 自动化任务
@正则
re.compile()==>search==》match对象==》group()#仅匹配一次
re.compile(()())==...》groups()
()?
(){}?
.*? #是满足条件的情况只匹配一次,即最小匹配.*
+
|
.#除换行外通配,包括汉字;compile里面加re.DOTALL,则匹配所有字符
re.I
re.VERBOSE
[]内的普通正则符号不会被解释;
@读写文件
os
os.path.join(a,b)
os.chdir(a)
os.getcwd()
os.makedirs(a)
当前目录的相对路径‘.\’
os.path.abspath('.')==os.getcwd()
path=r'E:\新python资料20180629\基础及爬虫入门视频'os.path.basename(path)>>>'基础及爬虫入门视频'os.path.dirname(path)>>>'E:\\新python资料20180629'os.path.getsize(path)>>>4096os.listdir(path)#本层的文件及文件夹名>>>['01-Python基础-第01天(Linux基本操作)', '02-Python基础-第02天(Linux基本操作)',...]
os.path.exists(path)
永久删除文件
os.unlink(path)
os.rmdir(dir)#必须是空文件夹
shutil.rmtree(dir)
删到垃圾箱
send2trash(path)
查看所有文件夹和文件名
importosfor flodername,subfolders,filenames inos.walk(path):print(flodername)for subfloder insubfo.ders:print('{}:{}'.format(flodername,subfloder)for filename infilenames:print('{}:{}'.format(flodername,filename)
@zipfile模块
@批量调整文件名
"""批量调整名字"""
importre,os,shutil#正则表达式
re_or=re.compile(r'(\d+)-(\d+)-(\d+)(.*)')#检索文件夹内所有名字并匹配,组成新名字
path=''
for or_name inos.listdir(path):
day_name=re_or.search(or_name).group(1)
mon_name=re_or.search(or_name).group(2)
year_name=re_or.search(or_name).group(3)
last_name=re_or.search(or_name).group(4)
new_name=mon_name+day_name+year_name+last_name#***关于group的位置,compile(r'(1)(2(3))(4)')
or_file_path=os.path.join(path+or_name)
new_file_path=os.path.join(path+new_name)
shutil.move(or_file_path,new_file_path)
@项目:将一个文件夹备份到zip文件,P168
@第十章未看
@webbrowser,p192
@selenium,p210及以后
@