Python 实现把一个文件夹下所有的文件名和绝对路径(包括子文件夹)存入execl表格
Posted Love丶伊卡洛斯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 实现把一个文件夹下所有的文件名和绝对路径(包括子文件夹)存入execl表格相关的知识,希望对你有一定的参考价值。
前言
初衷:主要是为了方便一个目录下所有文件的查询,虽然可以直接使用搜索功能,但是首先得知道文件名,转成execl形式可以使用筛选方便查找。
python:3.8
编辑器:VS Code
依赖库:xlwt
功能:把一个文件夹下所有的文件名和绝对路径(包括子文件夹)存入execl表格
序号 | 最外层文件夹 | 文件名 | 文件绝对路径 |
---|---|---|---|
效果图1
效果图2
效果图3
源码1
import os
# 操作excel模块 pip install xlwt 安装一下
import xlwt
import sys
# sys.path[0]为要获取当前路径,file_name_list.xls为要写入的文件名
file_path = sys.path[0] + '\\\\file_name_list.xls'
# 新建一个excel
f = xlwt.Workbook(encoding='utf-8', style_compression=0)
# 新建一个sheet
sheet = f.add_sheet('sheet1')
# 文件计数
num = 0
# 变量path路径下所有的文件夹和文件名
path = input("请输入你需要转换文件夹的绝对路径:")
# print("len(path)=" + str(len(path)))
# 参数分别代表行,列,写入内容,首行写入列描述
sheet.write(0, 0, "序号")
sheet.write(0, 1, "最外层文件夹")
sheet.write(0, 2, "文件名")
sheet.write(0, 3, "文件绝对路径")
# 遍历所有目录文件
for root, dirs, files in os.walk(path):
# print('---------root---------')
# print(root)
for name in files:
file_name = os.path.join(root,name)
print("文件绝对路径:" + file_name)
relative_path = file_name[len(path)+1:]
# print(relative_path)
relative_path_arr = relative_path.split("\\\\")
# print(relative_path_arr)
folder = ""
if len(relative_path_arr) == 1:
print("最外层文件夹:" + folder)
else:
folder = relative_path_arr[0]
print("最外层文件夹:" + folder)
print("文件名:" + relative_path_arr[-1])
# 参数分别代表行,列,写入内容
sheet.write(num + 1, 0, num + 1)
sheet.write(num + 1, 1, folder)
sheet.write(num + 1, 2, relative_path_arr[-1])
sheet.write(num + 1, 3, file_name)
num = num + 1
print('\\n')
print("文件名数量:" + str(num)) # 显示文件名数量
f.save(file_path)
print("运行完毕!")
os.system("pause")
源码2(如果文件在根目录,则会填充在 最外层文件夹 列)
import os
# 操作excel模块 pip install xlwt 安装一下
import xlwt
import sys
# sys.path[0]为要获取当前路径,file_name_list.xls为要写入的文件名
file_path = sys.path[0] + '\\\\file_name_list.xls'
# 新建一个excel
f = xlwt.Workbook(encoding='utf-8', style_compression=0)
# 新建一个sheet
sheet = f.add_sheet('sheet1')
# 文件计数
num = 0
# 变量path路径下所有的文件夹和文件名
path = input("请输入你需要转换文件夹的绝对路径:")
# print("len(path)=" + str(len(path)))
# 参数分别代表行,列,写入内容,首行写入列描述
sheet.write(0, 0, "序号")
sheet.write(0, 1, "最外层文件夹")
sheet.write(0, 2, "文件名")
sheet.write(0, 3, "文件绝对路径")
# 遍历所有目录文件
for root, dirs, files in os.walk(path):
# print('---------root---------')
# print(root)
for name in files:
file_name = os.path.join(root,name)
print("文件绝对路径:" + file_name)
relative_path = file_name[len(path)+1:]
# print(relative_path)
relative_path_arr = relative_path.split("\\\\")
# print(relative_path_arr)
print("最外层文件夹:" + relative_path_arr[0])
print("文件名:" + relative_path_arr[-1])
# 参数分别代表行,列,写入内容
sheet.write(num + 1, 0, num + 1)
sheet.write(num + 1, 1, relative_path_arr[0])
sheet.write(num + 1, 2, relative_path_arr[-1])
sheet.write(num + 1, 3, file_name)
num = num + 1
print('\\n')
print("文件名数量:" + str(num)) # 显示文件名数量
f.save(file_path)
print("运行完毕!")
os.system("pause")
源码3(由openAI自动生成)
import os
import xlwt
# 需要遍历的文件夹路径
folder_path = "C:\\example\\folder"
# 创建一个Excel工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一个工作表
worksheet = workbook.add_sheet("Sheet1")
# 在工作表中添加表头,即文件名和绝对路径
worksheet.write(0, 0, "File Name")
worksheet.write(0, 1, "Absolute Path")
# 遍历文件夹中的所有文件和子文件夹
for (dirpath, dirnames, filenames) in os.walk(folder_path):
for filename in filenames:
# 计算当前文件的绝对路径
absolute_path = os.path.join(dirpath, filename)
# 在工作表中写入文件名和绝对路径
worksheet.write(row, 0, filename)
worksheet.write(row, 1, absolute_path)
# 更新行号
row += 1
# 保存工作簿
workbook.save("file_list.xls")
以上是关于Python 实现把一个文件夹下所有的文件名和绝对路径(包括子文件夹)存入execl表格的主要内容,如果未能解决你的问题,请参考以下文章
Python 实现把一个文件夹下所有的文件名和绝对路径(包括子文件夹)存入execl表格