# -*- coding: utf-8 -*- import xlsxwriter # 導入模塊 import os # 新建txt文檔 # f = open('PCL.bat','a') # f.write('@echo off') # f.write('\ntree /f > Tree_result.txt') # f.write('\necho 生成樹形目錄') # f.write('\ndir /s/b/p > directory.txt') # f.write('\necho 輸出文件目錄...') # f.write('\npython Dir.py') # f.write('\necho 生成目錄成功!') # f.write('\npause') # f.close() # #執行批處理 # os.system(r'PCL.bat') #定義文件名稱 txtname = 'directory.txt' txtname2 = 'Tree_result.txt' excelname = '目錄導航.xlsx' #判斷當前目錄下是否存在臨時文件 if os.path.exists(txtname)==True: os.remove(txtname) if os.path.exists(txtname2)==True: os.remove(txtname2) #執行批處理命令 #os.system('@echo off') #os.system('\necho 生成樹形目錄...') os.system('\ntree /f >> ' + txtname2) #os.system('\necho 輸出樹形目錄成功!') #os.system('\necho 生成目錄絕對路徑...') os.system('\ndir /s/b/p >> ' + txtname) #os.system('\necho 輸出目錄絕對路徑成功!') # 新建excle workbook = xlsxwriter.Workbook(excelname) # 新建sheet worksheet = workbook.add_worksheet('目錄鏈接') worksheet2 = workbook.add_worksheet('樹形目錄') # 導入txt1文件數據 fopen = open(txtname, 'r', encoding='gbk') lines = fopen.readlines() # 導入txt2文件數據 fopen2 = open(txtname2, 'r', encoding='gbk') lines2 = fopen2.readlines() # 通過字典的方式直接設置格式。 workfomat1 = workbook.add_format({ 'bold': True, # 字體加粗 'border': 1, # 單元格邊框寬度 'align': 'center', # 對齊方式 'valign': 'vcenter', # 字體對齊方式 'fg_color': '#F4B084', # 單元格背景顏色 'font_name': '微軟雅黑' # 設置字體 }) workfomat2 = workbook.add_format({ 'bold': False, # 字體加粗 'border': 1, # 單元格邊框寬度 'align': 'center', # 對齊方式 'font_name': '微軟雅黑', # 設置字體 'font_size': 10, 'fg_color': '#E6E4E1', # 單元格背景顏色 }) workfomat3 = workbook.add_format({ 'bold': False, # 字體加粗 'border': 1, # 單元格邊框寬度 'align': 'left', # 對齊方式 'font_name': '微軟雅黑', # 設置字體 'font_size': 10, 'fg_color': '#E6E4E1', # 單元格背景顏色 }) workfomat4 = workbook.add_format({ 'bold': False, # 字體加粗 'align': 'left', # 對齊方式 'font_name': '宋體', # 設置字體 'font_size': 11, 'fg_color': '#E6E4E1', # 單元格背景顏色 }) headings = ['序號', '鏈接'] # 設置表頭 worksheet.write_row('A1', headings, workfomat1) i = 1 for line in lines: dir = line.strip('\n') worksheet.write(i, 0, i, workfomat2) worksheet.write(i, 1, dir, workfomat3) worksheet.write(i, 1, '=HYPERLINK(\"' + dir + '\")') i = i + 1 worksheet.set_column('B:B', 150) j = 0 for line2 in lines2: dir2 = line2.strip('\n') worksheet2.write(j, 0, dir2, workfomat4) j = j + 1 worksheet2.set_column('A:A', 300) #關閉txt文件 fopen.close() fopen2.close() #關閉excle文件 workbook.close() #將excel文件保存關閉,如果沒有這一行運行代碼會報錯 #刪除臨時文件 os.remove(txtname) os.remove(txtname2)