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

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

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

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

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


1、文件数据形式


a0db6bff3665434d8f43a747e46232a0.png


2、待修改文件


d634a3ced42c4ed9806663ee44460fd9.png


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、修改后的结果


b49b29fc3c3044d1b7c3f4658deb83d5.png

相关文章
|
27天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
12天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
21 1
|
13天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
13天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
14天前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
16 2
|
25天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
53 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
30天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
1月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
47 2