本文同步发表于小弟自架网站(非钓鱼也无广告,纯分享):
微确幸资讯站
本文主要是工作上一些资料用Python程式解决后想做的分享,
但因为档案资料等不便于网路公开,
所以就用Python先将档案名称修改一下,
以便于日后运用与分享。
原始资料夹档案状况:
以下为程式:
import globimport osimport repath = 'd:\\temp\\test\\'files = glob.glob(path + '*')print(files)
接下来是用以前分享过的中文姓名自动产生器爬虫,自动产生中文姓名。
import requestsimport pandas as pd# 设定time为获取中文姓名100笔的倍数。time=3,就是300笔的意思。times = 1cnames = []for x in range(times): url = 'http://www.richyli.com/name/index.asp' r = requests.get(url) r.encoding = 'big5' # 将网页中的资料以分行的方式存成文字档 result = r.text.splitlines() # 114是中文姓名开始的列,找到最后一个「、」,设定成为字串的切片位置。 char_index = result[114].rfind("、") temp = result[114][:char_index] # 将temp的100笔姓名新增到cnames中 cnames.append(temp)# 将每100笔姓名的list加一个「、」,再组合成字串存到my_names中my_names = "、".join(str(x) for x in cnames)print(my_names)
# 将上面的姓名生成dataframedf_name = pd.DataFrame(my_names.split('、'), columns=['姓名'])print(f'中文姓名笔数:{len(df_name)}')# 将姓名做成listmy_list = df_name.姓名.values.tolist()print(my_list)
# 将档名用regex分成三组,第一组为「附件X-X」,第二组为「附件X-X后面的其他档名」,第三组为「.附档名」pattern = '(附件\d+-\d)(.+)(\..+)'n = 0for file in files: file_name = re.findall(pattern, file) #print(file_name) # 将档名前面的附件X-X保留,然后加入"_",再加入中文自动的姓名,再加上附档名 new_file_name = file_name[0][0] + '_' + my_list[n] + file_name[0][2] os.rename(file, path + new_file_name) print(f'{file}已完成') n += 1
d:\temp\test\附件1-1这是示範档案这是示範档案.docx已完成
…
…
以下略。
最后输出结果:
以上即完成本次目标。