编程
python创建空的csv文件
df1 = pd.DataFrame()
df1.to_csv('./示例文件.csv', encoding='utf-16', mode='w')
python自动化根据图象来识别,鼠标点击图像中的位置:
def locate_pic(useimg):
location = pyautogui.locateCenterOnScreen(useimg)
if location is not None:
pyautogui.click(location.x, location.y, interval=0.2, duration=0.2) # , button=lOrR
img1 = 'read.png'
time.sleep(1)
locate_pic(img1)
time.sleep(1)
locate_pic(img1)
其中img1需要自己截图,图片内容为想要自动化点击的按钮。sleep是等待网页加载。
lambda函数
lambda函数的基本语法:
lambda arguments: expression
lambda
: 关键字表示开始定义一个 lambda 函数。arguments
: 参数列表,类似于函数定义中的参数。expression
: 表达式,是函数的返回值。
Lambda 函数在定义时可以不带任何参数,其语法如下:
lambda: expression
这里举个易错例子:
list_2 = lambda: [df11['下标'][i] for i in list_1]
print(list_2)
res = list_2()
print(res)
第一个会输出
<function add_cuo_ti_ben.<locals>.<lambda> at 0x00000218200F6520>
第二个会正常输出列表,原因是,第一个是让输出函数名称,list_2在例子中定义为了匿名函数。
加个括号才是调用,才可输出返回的列表。
正则表达式
总结:
1、?:表示前面一个字符可有可无,见图 ?‑1
2、*代表(前一个字母)没有也可以出现多次,(前面那个字母只能出现0次或者无数次)
而+代表(前一个字母)出现一次以上,即上面ac能匹配,用了+后ac不能匹配出来
拓展:
ab{6}c表示指定需要b出现6次
ab{2,6}c表示指定需要b出现2到6次
ab{2,}c表示指定需要b出现2次以上
想要匹配多个字符(字母)可以将ab括起来选择+(出现1次以上)例如(ab)+就能匹配ababc和abc
实战例子:
3、或匹配符
a (cat|dog) 能匹配a cat 和a dog 而a cat|dog 能匹配a cat 和dog
拓展:
想匹配由abc构成的单词:用[abc]+即可,[a-zA-Z]+表示所有英文字符,[a-zA-Z0-9]+代表所有英文字符和数字,[^0-9]+表示所有非数字字符(包括换行符)
4、元字符:
\d数字字符,点”.”会匹配任意字符,除了换行符。
举例:^a会匹配absorb,a$会匹配tea
贪婪匹配的例子:
如<span><b>this is a sample text</b></sapn>
<.+>会匹配全部,即<span><b>this is a sample text</b></sapn>
<.+?>会匹配<span>、<b>、</b>、</sapn>
补充:
1、单次划分结束标志、边界
\b代表单词字符的边界
举例:#[a-fA-f0-9]{6}\b
如果没有\b最后一个很多f的那个也会匹配进来
2、对于点.需要用反斜杠转义才能表示点 即\.才能表示点,
深入拓展例子:正则表达式匹配ip地址
Import re
思路:先是找到所有的源码(也即全部的url),然后找到需要提取的部分,
用(.*?)代替需要提取的部分,即可
详细:
例二:(只有数字的时候可以用\d+)提取文件地址的时候还是用(.*?)