python 按照分隔符導出excel表

我使用passwd文件做的實例

[root@iZ2ze1o0n0b42zks2le9byZ ~]#cat passwd.py
#!/bin/env python
#coding: utf-8
#********************************************************************
#Author:		liuhao
#QQ: 			1921160095
#Date: 			2020-05-28
#FileName:		passwd.py
#Copyright (C): 	2020 All rights reserved
#********************************************************************
import xlsxwriter
import sys
import datetime
import os
import importlib
#當前時間
today=datetime.datetime.now().strftime('%Y-%m-%d')
os.system('cp /etc/passwd /root/passwd')
# 把源文件考到目錄下,擴展得話,其實裏面可以執行腳本什麼得
filename = '/root/passwd'
importlib.reload(sys)
workbook = xlsxwriter.Workbook('passwd' + today + '.xlsx')
# 創建表格
worksheet = workbook.add_worksheet('sheet1')
# 創建表格中得sheet
bold = workbook.add_format({'bold': True,'fg_color': '#F4B084','border': 1})
bord=workbook.add_format({'border': 1})
# 設置單元格格式
head = ['用戶名','是否設置密碼','UID','GID','用戶家目錄','shell']
# 設置標題
def new_excel():
    row=0
    col=0
    for i in (head):
        worksheet.write(row,col,head[col],bold)
        col += 1
    # 把標題循環輸出到第一行
    row=1
    col=0
    passwdfile = open(filename)
    # 讀取文件
    for line in passwdfile.readlines():
        line = line.strip()
        if not len(line) or line.startswith('#'):
            continue
            # 檢測是否空行,如果是空行或者#號開頭得行,就跳過
        for j in range(len(line.split(':'))):
        # 按照:分割
            if line.split(':')[j] !='':
                worksheet.write(row,col + j,line.split(':')[j],bord)
            else:
                worksheet.write(row,col + j,' ',bord)
        row += 1
        # 循環結束 行+1 
    passwdfile.close()
new_excel()
workbook.close()
[root@iZ2ze1o0n0b42zks2le9byZ ~]#

效果圖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章