python 读取 .csv/.xlsx/.xls 文件数据—批量修改文件名

        本文代码主要有两个功能:

        (1)使用 python 读取 .csv/.xlsx/.xls 文件中的数据;

        (2)使用读取到的数据批量修改文件夹下的文件名;

1、文件数据形式

python 读取 .csv/.xlsx/.xls 文件数据—批量修改文件名_第1张图片

2、待修改文件

python 读取 .csv/.xlsx/.xls 文件数据—批量修改文件名_第2张图片 

3、python 代码实现

import os
import shutil
import pandas as pd


def change_xlsx(filename, filePath):
    """
    修改 .xlsx 和 .xls 文件名
    :param filename: 待修改文件路径
    :param root: 文件修改后的保存路径
    """
    # TODO 读取 .xlsx 中的数据
    data = pd.read_excel(filename, sheet_name='Sheet1')  # 读取同一个表格中指定 Sheet1 中的数据,不指定时直接默认读取到这个Excel的第一个表单

    # row = data.values  # 读取所有数据
    # row1 = data.iloc[0].values           # 0表示第一行 这里读取数据并不包含表头,要注意哦!
    # print("读取指定行的数据:\n{0}".format(row1))

    # 遍历该文件夹所有的文件,并for循环
    for name in os.listdir(filePath):

        # 文件名加上文件夹构成绝对路径
        before_file = os.path.join(filePath, name)

        # 获取当前文件名所在行
        index = data.loc[data['oldName'] == name]

        # print("2=", index)

        # 当前文件所对应的新名称
        new_name = index['newName'].values

        if len(new_name):
            # index['code'].values 为当前文件名所对应的新名称
            after_file = os.path.join(filePath, new_name[0] + ".pdf")

            # 利用shutil.move将文件移动到原来位置(重命名的效果)
            shutil.move(before_file, after_file)
        else:
            break

    print(" .xlsx/.xls 文件修改完成!!!")


def change_csv(filename, filePath):
    """
    修改 .csv 文件名
    :param filename: 待修改文件路径
    :param root: 文件修改后的保存路径
    """
    data = pd.read_csv(filename, index_col=False)

    # row = data.values                             # 读取所有数据
    # row1 = data.iloc[0].values                    # 0表示第一行 这里读取数据并不包含表头,要注意哦!
    # print("读取指定行的数据:\n{0}".format(row1))

    # 遍历该文件夹所有的文件,并for循环
    for name in os.listdir(filePath):

        # 文件名加上文件夹构成绝对路径
        before_file = os.path.join(filePath, name)

        # 获取当前文件名所在行
        index = data.loc[data['oldName'] == name]

        # print("2=", index)

        # 当前文件所对应的新名称
        new_name = index['newName'].values

        if len(new_name):
            # index['code'].values 为当前文件名所对应的新名称
            after_file = os.path.join(filePath, new_name[0] + ".pdf")

            # 利用shutil.move将文件移动到原来位置(重命名的效果)
            shutil.move(before_file, after_file)
        else:
            break

    print(" .csv 文件修改完成!!!")


if __name__ == '__main__':

    # 表格数据路径
    filename = 'data_#2.xls'

    # 待修改文件路径
    filePath = "F:/桌面/get/data2"

    if filename.find('.csv') > 0:
        change_csv(filename, filePath)
    else:
        change_xlsx(filename, filePath)




4、修改后的结果 

python 读取 .csv/.xlsx/.xls 文件数据—批量修改文件名_第3张图片

你可能感兴趣的:(python,基础,python)