引言

最近接触到了后羿采集器,一款图形化爬虫,试用了一下还挺好用的,能省不少事,然而笔者在爬一个图片网站上发现这个软件要自己设置下载文件的文件名的功能居然是付费的!而且价格过于高昂所以笔者决定自己动手来给图片文件挨个改名。

准备

  • 后羿采集器
  • Python(需要os和pandas)

抓取文件并分析抓取数据

后羿采集器可以将采集数据导出为excel文件,然后笔者对表格稍微润色了一下,成品大概这样可以看到文件的旧名字是一串数字,而笔者的需求是用标题列的数据来代替这些数字。

代码实现

import pandas as pd
import os

dirpath = 'F:\\spid\\'          #图片文件路径
namee = pd.read_excel('data2.xlsx',sheet_name='sheet1',header=0,usecols=['标题'])
adress = pd.read_excel('data2.xlsx',sheet_name='sheet1',header=0,usecols=['地址'])          #分别获取标题和地址两列1的数据

for i in range(0, 784):             #784为表格数据行数
    ndata = namee.iloc[i,0]
    adata = adress.iloc[i,0]            #旧文件名
    filetype = os.path.splitext(adata)[1]       #获取文件扩展名
    newname = ndata + filetype
    newfilepath = os.path.join(dirpath, newname)
    try:
        os.rename(adata, newfilepath)
        print(newfilepath)
    except:                 #因为有的标题重复了,所以可能会发生文件已存在错误
        ndata = ndata + 'A'
        newname = ndata + filetype
        newfilepath = os.path.join(dirpath, newname)        #新文件名
        os.rename(adata, newfilepath)
        print(newfilepath)
print('ALL DONE')

无注释版

import pandas as pd
import os

dirpath = 'F:\\spid\\'
namee = pd.read_excel('data2.xlsx',sheet_name='sheet1',header=0,usecols=['标题'])
adress = pd.read_excel('data2.xlsx',sheet_name='sheet1',header=0,usecols=['地址'])

for i in range(0, 784):
    ndata = namee.iloc[i,0]
    adata = adress.iloc[i,0]
    filetype = os.path.splitext(adata)[1]
    newname = ndata + filetype
    newfilepath = os.path.join(dirpath, newname)
    try:
        os.rename(adata, newfilepath)
        print(newfilepath)
    except:
        ndata = ndata + 'A'
        newname = ndata + filetype
        newfilepath = os.path.join(dirpath, newname)
        os.rename(adata, newfilepath)
        print(newfilepath)
print('ALL DONE')

最后成果