Python 读取文件夹(os.walk() )获取文件名以超链接方式(openpyxl)写入Excel的单元格某列。

本文介绍如何使用Python批量获取指定文件夹内的子文件夹名称,并将这些名称以超链接的形式写入Excel文件中。涉及的技术包括使用os模块遍历文件夹、openpyxl操作Excel以及pandas进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能描述看代码的帮助信息。操作步骤。
1.读取某个文件夹的所有文件夹下的文件名。
2.通过openpyxl来操作Excel。
3.将文件夹的文件名集合以超链接的方式写入Excel文件。

# 推荐使用pandas,使用pandas方法可以不用在excel上点击
import pandas as pd
import os
import openpyxl as op


def getfilename(filename):
    '''
    此函数完成获取文件夹名称
    os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
    :param filename:
    :return:
    '''
    for root, dirs, files in os.walk(filename):
        # print(filename)
        # print(type(root))
        # print(type(dirs))
        # print(type(files))
        array = dirs
        # print(f"getfilename files::{files}")
        # print(f"getfilename dirs::{dirs}")
        # print(f"getfilename array::{array}")
        if array:
            return array


# 获取当前路径
def get_img_file(file_dir):
    imagelist = []
    for parent, dirnames, filenames in os.walk(file_dir):
        for filename in filenames:  # 判断文件是否是图片形式,这里的后缀名都是默认小写字母形式,如有大写字母,添加上去即可
            if filename.endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')):
                imagelist.append(os.path.join(parent, filename))
                return imagelist


def Hyperlinks(data_list, file_paths):
    '''
    HYPERLINK 函数针对支持的目标位置创建超链接跳转
    :param data_list: 超链接目标位置 :1)Excel 工作簿或工作表中的单元格;2)文档路径;3)互联网网址。
    :param file_paths: 超链接[显示文本]
    :return:所有超链接集合列表。
    '''
    str_1 = '=HYPERLINK("'
    str_2 = '","'
    str_3 = '")'
    list_ = []
    for i, j in zip(data_list, file_paths):
        str4 = "..\\04.规约\\" + j
        print(f"str4{str4}")
        list_.append(str_1 + str4 + str_2 + str(i) + str_3)
        print(f"list_: {list_}")
    return list_


def write(num_list):
    # num_list = [1, 2, 3, 4, 5, 6]
    '''
    功能:所有超链接集合列表逐行将写入excel 文件的某列
    用到库OpenPYXL,详细了解这个库的功能,可参见https://www.osgeo.cn/openpyxl/index.html#introduction
    :param num_list:
    :return:
    '''
    bg = op.load_workbook(r"C:\Users\hp\Desktop\软件\03.使用说明\列表.xlsx")  # 应先将excel文件放入到工作目录下
    sheet = bg["Sheet1"]  # “Sheet1”表示将数据写入到excel文件的sheet1下
    for i in range(1, len(num_list) + 1):
        sheet.cell(i + 1, 4, num_list[i - 1])  # sheet.cell(1,1,num_list[0])表示将num_list列表的第0个数据1写入
        print(num_list[i - 1])
        # 到excel表格的第一行第一列
    bg.save(r"C:\Users\hp\Desktop\软件\03.使用说明\列表.xlsx")  # 对文件进行保存


if __name__ == "__main__":
    # 获取文件夹目录列表路径
    file_dir = "C:\\Users\hp\\Desktop\\04.规约"
    dirlist = getfilename(file_dir)  # 获取指定文件夹下的文件夹的名称

    # 利用pandas 将Excel表里的数据读出来。
    # data = pd.read_excel(r"D:\test.xlsx", engine='openpyxl')  # 导入数据    
    # data_list = data['test']  # 设置需要生成超链接的列

    # Hyperlinks 是Excel函数超链接的函数。第一个参数是链接位置,第二个参数是链接名字
    test_list = Hyperlinks(dirlist, dirlist)
    write(test_list)
    print('文件成功生成')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值