re.match(pattern, string)
从string的起始位置按pattern匹配
re.search(pattern, string)
匹配整个字符串
re.findall
re.sub
.lstrip
.rstrip
.strip
>>> import re
>>> b = '10010000001010000'
>>> r = re.search('1(.*?)1', b)
>>> print(r.group())
1001
>>> str = ' 2 3 45 '
>>> print(str)
2 3 45
>>> print(str.lstrip()) # 删除左边的空格
2 3 45
>>> print(str.rstrip()) # 删除右边的空格
2 3 45
dict.update
dict.get
>>> dic = {'name': '李白',}
>>> print(dic['name'])
李白
>>> print(dic.get("name"))
李白
>>> print(dic['stu'])
Traceback (most recent call last):
File "" , line 1, in <module>
KeyError: 'stu'
>>> print(dic.get('stu'))
None
>>> print(dic.get('stu', 'myr'))
myr
.* 贪婪匹配
.*? 最小匹配
# re.search .*
>>> import re
>>> b = '10010000001010000'
>>> r = re.search('1(.*)1', b)
>>> print(r)
<re.Match object; span=(0, 13), match='1001000000101'>
>>> print(r.group())
1001000000101
# re.search .*?
>>> import re
>>> b = '10010000001010000'
>>> r = re.search('1(.*?)1', b)
>>> print(r.group())
>>> 1001
selenium八大定位方式
find_element(By.ID,“id”)
find_element(By.CLASS_NAME,“classname”)
find_element(By.CSS,“#id”)
find_element(By.XPATH,“//div[@name=‘csdn’]”)
find_element(By.LINK_TEXT,“text”)
find_element(By.PARTIAL_LINK,“partialtext”)
find_element(By.NAME,“name”)
find_element(By.TAG_NAME,“input”)
get_attribute(‘class’, xxxx)
cmd ping ip, true false
subprocess.run()
(1)生成.exe文件
windows powershell中执行 pyinstaller -F -w clean_log.py
-F: 只生成一个.exe文件
-w:执行时不弹窗
clean_log.py为待转为.exe的python文件
(2)创建定时任务
cmd下执行taskschd.msc——任务计划程序库——创建基本任务——设置自动运行时间
(3)执行
1)每天自动运行
2)双击.exe文件手动运行
join
>>> print(a.join('1234'))
1abcde2abcde3abcde4
>>> print(a.join(['1','2','3','4']))
1abcde2abcde3abcde4
>>> i = 'abc'
>>> j = '123'
>>> i.join(j)
'1abc2abc3'
>>> k = ['1', '2', '3']
>>> i.join(k)
'1abc2abc3'
append
>>> a = ['1', '2']
>>> print(a.append(['1']))
None
>>> print(a)
['1', '2', ['1']]
(1)赋值
list1 = [1, 2, 3]
list2 = list1
print(id(list1))
print(id(list2))
list2.remove(3)
print(list1)
输出:
2039818539968
2039818539968
[1, 2]
直接赋值,拷贝的是内存地址,相当于起别名。
list1和list2指向同一个内存空间。
(2)浅拷贝
list1 = [1, 2, 3, ['a', 'b', 'c']]
list2 = list1.copy() # 浅拷贝
print(id(list1))
print(id(list2))
del list1[3][0]
print(list1)
print(list2)
del list1[0]
print(list1)
print(list2)
输出:
2021744034624
2021744034816
[1, 2, 3, ['b', 'c']]
[1, 2, 3, ['b', 'c']]
[2, 3, ['b', 'c']]
[1, 2, 3, ['b', 'c']]
list1浅拷贝为list2后,会另开辟一段内存空间存储list2。
一级目录深拷贝(list2的值不随list1变),二级目录浅拷贝(list1变,list2则变)。
具体来说,list1 = [1, 2, 3, [‘a’, ‘b’, ‘c’]],list1删除1,2,3时,list2不会变,list1删除 [‘a’, ‘b’, ‘c’]中的’a’或’b’或’c’时,list2会变。
操作list1时,list2的现象也一样。
(3)深拷贝
list1深拷贝为list2后,无论list1如何变,list2都不变。