批量修改文件名

最近在看代码审计,发现github上有人爬了wooyun以前的案例:https://github.com/Xyntax/1000php

但是他的命名很烦躁,不知道每篇文章写的什么,于是就想着改下名字吧

  • 环境:python 2.7 sublime
  • 思路:获取网站的title,将title名修改为文件名

首先,我是将整个文件解压到了我的C盘下,定义了一个文章所在目录的dir字符串

1
dir = "C:\\1000php-master\\bugs\\"

定义两个列表,一个存放原始的名称,一个存放我们要修改的名称:

1
2
open_html = []
new_name = []

首先,我们通过os获取到所有修改前的名称:

1
old_name = os.listdir(dir)

打开我们的每一个页面,并获取其title值:

1
2
3
4
5
6
7
8
9
10
11
12
for name in old_name:
open_html.append(dir + name)
这里获取每个文件的完整路径


for i in range(len(old_name)):
with open(open_html[i],"r") as f:
soup = BeautifulSoup(f.read(),"lxml")
title = soup.title
new_name.append(title.text.split("|")[0].strip().replace("/","").replace("\\","").replace("<","xiaoyu").replace(">","dayu").replace("=","dengyu").replace("(","".replace(")","")) + ".html")

打开每个文件获取title值,这里要对title做些处理,不然后面改名会有很多问题啊

修改文件名,用os,rename函数:

1
2
3
4
5
6
for i in range(len(new_name)):
try:
os.rename(dir +old_name[i], dir + new_name[i])
print("[{}]Success changed name ".format(i))
except:
print([-]old_name[i])

这里有可能会报错,后期自己慢慢处理

完整代码,不一定要放在一个文件夹下面

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
# -*- coding: UTF-8 -*-

import os
from bs4 import BeautifulSoup

dir = "C:\\1000php-master\\bugs\\"
open_html = []
new_name = []


#获取old_name
old_name = os.listdir(dir)
# print(old_name)
print("[+]Finish get old_name,starting get new name......")
#获取完整的地址



#通过获取title得到new_name
for i in range(len(old_name)):
with open(open_html[i],"r") as f:
soup = BeautifulSoup(f.read(),"lxml")
title = soup.title
new_name.append(title.text.split("|")[0].strip().replace("/","").replace("\\","").replace("<","xiaoyu").replace(">","dayu").replace("=","dengyu").replace("(","".replace(")","")) + ".html")
# print(dir + new_name[0])
print("starting chage name")
# print(new_name)
for i in range(len(new_name)):
try:
os.rename(dir +old_name[i], dir + new_name[i])
print("[{}]Success changed name ".format(i))
except:
print(old_name[i])

print("Finish change name")

附上一张成功的截图:
rename_success

这样看着是不是好多了:)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:批量修改文件名

本文作者:sher10ck

发布时间:2019-01-17, 22:06:45

最后更新:2020-01-13, 13:00:45

原始链接:http://sherlocz.github.io/2019/01/17/rename-1000/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录