import os
#获取绝对路径
path ='/Users/小侯同学/Camera'
files = os.listdir(path)for f in files:if'10'in f and f.endswith('.jpg'):print('Found if !'+ f)import os
path ='.files'
files = os.listdir(path)for f in files:if(not f.endswith('.gif'))and('project30'in f or'commercial'in f):print('Found it'+ f)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
文件自动归类
import os
import shutil
# 相对路径
path ='./problem_files'# 创建文件夹
os.makedirs(path +'/picture')
os.makedirs(path +'/document')# 将待处理后缀名存储到相应列表中
picture_suffix =['jpg','png','gif']
doc_suffix =['docx','pdf','txt']# 移动并删除for p in picture_suffix:
cur_path = path +'/'+ p
files = os.listdir(cur_path)for f in files:
shutil.move(cur_path +'/'+ f, path +'/picture')# 删除
os.removedirs(cur_path)for d in doc_suffix:
cur_path = path +'/'+ d
files = os.listdir(cur_path)for f in files:
shutil.move(cur_path +'/'+ f, path +'/document')
os.removedirs(cur_path)
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
压缩解压zip
import os
import shutil
##解压#找到文件defscan_file():
files = os.listdir()for f in files:if f.endswith('.zip'):return f
defunzip_it(f):
folder_name = f.split('.')[0]#.之前所有内容
target_path='/'+folder_name
os.makedirs(target_path)
shutil.unpack_archive(f,target_path)defdelete(f):
os.remove(f)whileTrue:
zip_file = scan_file()if zip_file:
unzip_it(zip_file)
delete(zip_file)
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
##压缩import os
import shutil
import time
#待压缩
doc_path ='./document'#输出路径
output_path ='./output'
zip_count =0whileTrue:
files = os.listdir(doc_path)
files_count =len(files)if files_count >=10:
zip_count = zip_count+1
zip_name = output_path+'/'+'archive'+str(zip_count)
shutil.make_archive(zip_name,'zip',doc_path)for f in files:
os.remove(doc_path+'/'+f)
time.sleep(1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
删除重复文件
import filecmp
import os
path ='./problem_files'# 已有文件夹
docs =['doc1','doc2']#全部放在一个文件夹里defget_all_files(path, dirs):
all_files =[]for d in dirs:
cur_path = path +'/'+ d
files = os.listdir(cur_path)for f in files:
all_files.append(cur_path +'/'+ f)return all_files
defcmp_files(a,b):if filecmp.cmp(a,b):
os.remove(b)print("已删除\""+b)#调用函数
all_files = get_all_files(path,docs)for a in all_files:for b in all_files:if a!=b and os.path.exists(a)and os.path.exists(b):
cmp_files(a,b)
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
读取csv并自定义格式
import csv
defread_info():
f =open('./sample.csv','r')
reader = csv.DictReader(f)return[info for info in reader]defmake_msg(raw_info):
t ='{n}-请于{t}参加{s}在{a}'return[t.format(n=info['姓名'],
t=info['时间'],
s=info['课程'],
a=info['地址'])for info in raw_info]
raw_info = read_info()
msg = make_msg(raw_info)print(msg)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
wxpy(现在网页微信不能用了,仅学习思路)
#从csv文档匹配相应昵称发送对应信息import csv
import time
from wxpy import*
FRIENDS =['Alice','Bob','Jack']
CSV_PATH ='./sample.csv'defread_csv(path):
f =open(path,'r', encoding='utf-8')
reader = csv.DictReader(f)# print([info for info in reader])return[info for info in reader]defget_msg(infos, name):
template ="{name},请在{time}来{event}在{location},{note}"for info in infos:if info['微信昵称']== name:
msg = template.format(name=info['微信昵称'],
time=info['时间'],
event=info['事件'],
location=info['地址'])return msg
returnNone# 如果没有找到defsend_to_friends(infos, friends):
bot = Bot()for friend in friends:
friend_search = bot.friends().search(friend)if(len(friend_search)==1):
msg = get_msg(infos,friends)if msg:
friend_search[0].send(msg)else:print("发送失败csv中没有"+friend)else:print("发送失败,无好友"+friend)
time.sleep(3)
send_to_friends(read_csv(CSV_PATH),FRIENDS)
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
# 自动处理加群,加好友import time
from wxpy import*
bot = Bot()deflisten(pwd):
time.sleep(3)return[msg for msg in bot.messages if msg.text == pwd]defadd(users, group):try:
group.add_numbers(users, use_invitation=True)return group
except ResponseError:returnNonedefget_newfriend(say):
time.sleep(3)return[msg for msg in bot.messages if msg.text == say]
group = bot.groups().search('test group 1')[0]whileTrue:
new_friend = get_newfriend('Make friend')if new_friend:for msg in new_friend:
new_user = msg.card
bot.accept_friend(new_user)
new_user.send('Hi')
bot.messages.remove(msg)
time.sleep(3)
selected = listen('Pull me in')if selected:for msg in selected:
this_user = msg.sender
add(this_user,group)
bot.messages.remove(msg)
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
# 日志统计 //先不考虑改名字import time
from wxpy import*deffind_group(bot, name):try:
result = bot.groups().search(name)iflen(result)==1:return result[0]else:print("查找失败没有找到对应目标")returnNoneexcept ResponseError as e:print(e.err_code, e.err_msg)defget_members(group):try:return group.numbers
except ResponseError as e:print(e.err_code, e.err_msg)defparse_members(cur_members, last_members):# 退群
quit_list =[list.name for last in last_members if last notin cur_members]# 进群
new_list =[cur.name for cur in cur_members if cur notin cur_members]return"退群".join(quit_list)+"\n"+"进群".join(new_list)defsend_msg(bot, my_name, text):try:
myself = bot.friends().search(my_name)[0]
myself.send(text)except ResponseError as e:print(e.err_code, e.err_msg)defmain(my_name, group_name):
bot = Bot()
group = find_group(bot, group_name)
last_members = get_members(group)whileTrue:
time.sleep(3600)
cur_members = get_members(group)
msg = parse_members(cur_members,last_members)
send_msg(bot,my_name,msg)
main("微信名","群聊名")
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
处理异常
whileTrue:print('Give number')
num =input()try:print(100/int(num))except ValueError:print("输入错误请输入数字")except ZeroDivisionError:print("请输入非零")