Ywc's blog

Python-scripts

Word count: 1.2kReading time: 5 min
2020/06/21

密码中包含大小写字母、数字(长度大于8位)

1
2
3
4
5
6
7
import re
def checkPwd(pwd):
compilePwd=re.compile('^.*(?=.*[0-9])(?=.*[A-Z)(?=.*[a-z)\w{8,}')
if compilePwd.match(pwd):
return True
else:
return False

读取网站名称并存入表格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# coding=utf-8

import re
import requests

with open('test.txt','r',encoding='gbk') as f:
try:
for line in f.readlines():
req=requests.get(line)
res=req.text
pat=r"<title>(.*?)</title>"
data=re.findall(pat,res)
print(data)
if not data is None:
with open('url.csv','a',encoding='gbk') as f:
f.write(str(data)+'\n'.strip())
f.write(","+line+"\n".strip())
except Exception as e:
print(e)

判断200请求的域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# coding=utf-8
import requests

def getHttpStatusCode(url):
try:
request = requests.get(url,timeout=0.5)
httpStatusCode = request.status_code
return httpStatusCode
except requests.exceptions.HTTPError as e:
return e

if __name__ == "__main__":
with open('test.txt', 'r',encoding="gbk") as f:
for line in f:
url="http://"+line
try:
status = getHttpStatusCode(url.strip('\n')) # 换行符
print(status)
if status == 200:
with open('200url.txt', 'a',encoding="gbk") as f:
f.write(url+'\n'.strip())
print(url)
else:
print('no 200 code')
except Exception as e:
print(e)

python-excel读取代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import openpyxl

"""
读取excel表格内容信息
"""
def excelshili1():
"""
读取Excel文件分为几个步骤,首先是加载指定路径下的工作表文件,然后指定要读取的sheet,
随后指定行列来确定一个单元格,并返回其内容
:return:
"""
# 加载文件
wb=openpyxl.load_workbook("./stulab.xlsx")
# 返回sheets信息
sheets=wb.sheetnames
# 返回当前活跃的sheet名称
print(wb.active.title)
# 指定你要读取的sheet名称
sh1=wb['学生信息表']
# 制定你要读取的单元格内容
data=sh1['A1'].value
#读取信息的简写方式
print(wb['学生信息表']['A1'].value)
print("-----")
# 也可以制定具体的行列编号来读取内容
print(sh1.cell(1,2).value)
print(sh1.cell(1,3).value)

# 也可以通过关键词参数进行数据的读取
c=sh1.cell(row=1,column=2)
print(c)
print("++++")
print(sh1.cell(row=2,column=2).value)

def excelshili2():
"""
使用for循环读取多个记录

如果需要获取sheet中的所有内容,那么可以通过for循环来搞定。
我们可以获取指定sheet中的行数和列表,并通过for来获取数据。
:return:
"""
# 加载文件
wb = openpyxl.load_workbook("./stulab.xlsx")
# 制定sheet表
sh1=wb["学生信息表"]
# 获取行的最大值
rows=sh1.max_row
# 获取列的最大值
columns=sh1.max_column
# 使用for循环输出数据
for i in range(1,rows+1):
print("/n")
for j in range(1,columns+1):
print(sh1.cell(i,j).value,end=' ')

if __name__ == '__main__':
# excelshili1()
excelshili2()

读取前X行

1
2
3
4
# 读取1.txt中的前两行
with open ('1.txt') as f:
for i in range(2):
print(f.readline().strip())

知识点:read(), readline()和readlines()使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
read():
1、读取整个文件,返回的是一个字符串,字符串包括文件中的所有内容。
2、若想要将每一行数据分离,即需要对每一行数据进行操作,此方法无效。
3、若内存不足无法使用此方法。

readline():
1、每次读取下一行文件。
2、可将每一行数据分离。
3、主要使用场景是当内存不足时,使用readline()可以每次读取一行数据,只需要很少的内存。

readlines():
1、一次性读取所有行文件。
2、可将每一行数据分离,从代码中可以看出,若需要对每一行数据进行处理,可以对readlines()求得的结果进行遍历。
3、若内存不足无法使用此方法。

删除重复的行数据

1
2
3
4
5
6
7
8
9
lines_seen = set()  # set方法用来删除文件中重复的行
with open('test.txt', 'r') as f1:
with open('result.txt', 'w') as f2:
for line in f1.readlines():
url = line.strip()
if url not in lines_seen:
# print url
f2.write(url + '\n')
lines_seen.add(url)

此脚本删除test.txt中重复的数据,然后将不重复的数据保存到result.txt中去

筛选两个文件中不同的数据

1
2
3
4
5
6
7
with open('test1.txt','r') as f1:
with open('test2.txt','r') as f2:
file1=f1.readlines() # 需要注意的地方
file2=f2.readlines()
for i in file1:
if i not in file2:
print(i)

此脚本对比test1.txttest2.txt中的每一行数据,并筛选出不同的数据

CATALOG
  1. 1. 密码中包含大小写字母、数字(长度大于8位)
  2. 2. 读取网站名称并存入表格
  3. 3. 判断200请求的域名
  4. 4. python-excel读取代码
  5. 5. 读取前X行
  6. 6. 删除重复的行数据
  7. 7. 筛选两个文件中不同的数据