使用xlsxwriter创建Excel文件的问题
我刚开始学习Python,遇到了一些问题,下面是我的代码:
#modules
import time
import os
import xlsxwriter
#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')
#creatss a file for xls
def xl():
xl = cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "XL")
#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")
#operations
operation1010 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "1010")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "1010")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operation90247 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90247")
#creates the xl workbook for ech file and writes in it get file,dir at the top of colum A,C
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90247")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operation9969 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "9969")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "9969")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operation90665 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90665")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90665")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operationmatchupzone = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "matchupzone")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "matchupzone")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
#operations
operation5553 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "5553")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "5553")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operation8256 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "8256")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "8256")
workbook = xlsxwriter.Workbook(' mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operationeberkiss = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "emberkiss")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "emberkiss")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operationlaguardia = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "laguardia")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "laguardia")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
operation1024 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "1024")
os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "1024")
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
#calling the fenctions set above
cyberboad()
allrivers()
xl()
我知道这段代码写得不是很规范,它的功能是创建一个文件夹,然后在这个文件夹里用一个叫做 xlsxwriter
的模块创建一个Excel文件。
这个代码有时候能正常运行,但有时候又不行。我可能哪里做错了?
谢谢大家。
2 个回答
0
import time
import os
import xlsxwriter
#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')
#creatss a file for xls
def xl():
os.makedirs(PATH + '\\' + DATE + '\\' + "XL")
#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")
#operations
for f in ["1010","90247","9969","90665","matchupzone"]:
os.makedirs(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
os.chdir(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
workbook.close()
#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
#operations
for f in ["5553","8256","emberkiss","laguardia","1024"]:
os.makedirs(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
os.chdir(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
workbook = xlsxwriter.Workbook('mazehim.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
workbook.close()
#calling the fenctions set above
cyberboad()
allrivers()
xl()
嘿,我想告诉你,代码现在按预期工作了,我对此很满意,谢谢你的帮助,祝你有个愉快的一天。 当然,上面的代码就是最终的成果。
1
这段代码可能有很多问题,很难一眼看出。以下是我注意到的几个问题:
- 你一直在重复创建你的
workbook
对象。 你应该只创建一次,然后一直使用同一个工作簿对象。 - 你忘记关闭工作簿了(在最后加上
workbook.close()
就可以了)。 - 我不确定你的
xl
是否按你想的那样工作。它只会创建一个“XL”文件夹。
请尝试简化代码,并更清楚地解释一下哪里出错了。
你可以试试这个简化的代码:
import time
import os
import xlsxwriter
#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')
workbook = xlsxwriter.Workbook('mazehim.xlsx')
bold = workbook.add_format({'bold': True})
#creatss a file for xls
def xl():
os.makedirs(PATH + '\\' + DATE + '\\' + "XL")
#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")
#operations
for f in ["1010","90247","9969","90665","matchupzone"]:
os.makedirs(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
os.chdir(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
#operations
for f in ["5553","8256","emberkiss","laguardia","1024"]:
os.makedirs(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
os.chdir(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'getfile', bold)
worksheet.write('C1', 'dir', bold)
#calling the fenctions set above
cyberboad()
allrivers()
xl()
workbook.close()