获取文件夹下的所有文件名并保存在xlsx

2020-04-10

这篇文章主要通过一个案例来说明Python是如何操作表格。

这对于文档编辑者来说,非常有用。

可见,Python,everyone need to learn.

代码如下:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
#get file to store in xlsx
#
#####################################################

import os
import shutil
from openpyxl import load_workbook
from openpyxl import Workbook


#获得文件路径列表
def get_file_path_list(file_path,filetype):
	file_list = []
	if file_path is None:
		raise Exception('source_path is None')
	
	for dirpath,dirnames,filenames in os.walk(file_path):
		for name in filenames:
			if os.path.splitext(name)[1] in filetype:
				dirpath = dirpath.replace(file_path,"")
				dirpath = dirpath.replace("\\","/")
				file_list.append(dirpath + '/' + name)
	return file_list


#将文件夹下面的文件写入xlsx中
def write_filename_to_xlsx(srcpath,xlsxname,file_type):
	dir_list = []
	xlsx_wb = Workbook()
	dir_list = os.listdir(srcpath)
	for i in range(0,len(dir_list)):
		if not os.path.isfile(dir_list[i]):
			xlsx_wb.create_sheet(title=dir_list[i])
			sheet = xlsx_wb[dir_list[i]]	#通过sheet名字获得sheet表单
			file_list = get_file_path_list(srcpath+"/"+dir_list[i],file_type)
			for i in range(0,len(file_list)):
				sheet.append([file_list[i],os.path.basename(file_list[i]),"TRUE"])
				print(file_list[i])
	del xlsx_wb["Sheet"]	#删除创建时,默认的Sheet表格对象
	xlsx_wb.save(xlsxname)


#获得所有文件名输入到xlsx文件中,为以后修改文件名提供输入文件
if __name__ == '__main__':
	source_path = input("请输入要搜索的源文件目录:\n")
	xlsx_name = "头文件名替换表.xlsx"	#导出的文件名
	#文件类型列表
	file_type_list = ['.h']
	if not os.path.exists(xlsx_name):
		#拷贝指定类型的文件
		write_filename_to_xlsx(source_path,xlsx_name,file_type_list)
	else:
		print("error:"+xlsx_name+"文件已经存在!!!")

总结:

表格的操作,主要如下:

  • import和表格相关的库

    import openpyxl

  • 创建表格

    xlsx_wb = Workbook()

  • 创建表格中的某一个sheet

    xlsx_wb.create_sheet(title=dir_list[i])

  • 通过sheet名字获得sheet表单

    sheet = xlsx_wb[dir_list[i]]

  • 使用sheet的方法操作表格

    sheet.append等

  • 保存表格,并命名

    xlsx_wb.save(xlsxname)