无法在目录中看到创build的.xlsx文件

我已经生成了一些值,并使用xlsxwriter将它们填充到电子表格中。 这是我做到的:

 class main1(): . . . . def fun1(): workbook = xlsxwriter.Workbook(self.Output_fold+'Test'+time.strftime("%H_%M_%S_%d_%m_%Y")+'.xlsx') worksheet_A = workbook.add_worksheet('Sheet_A') . . worksheet_A.write(row,col,<val>) . . workbook.close() 

现在,由于必须进行多次写入,并添加了更复杂的逻辑,所以我决定引入另一个函数fun2 ,它将相应地写入值。 新的逻辑需要在fun1fun2生成值(通过调用另一个函数fun3 )。 所以,我决定用self.workbookreplacevariablesworkbook等。 我修改后的脚本如下所示:

main_file.py

 import xlsxwriter import libex import os import time import sys import string class main_cls(): def __init__(self): self.i=0 self.t1="" self.t2="" pwd=os.getcwd().split('\\') base='\\'.join(pwd[0:len(pwd)-1])+'\\' print base self.Output_fold=base+"Output\\" self.Input_fold=base+"Input\\" self.workbook=xlsxwriter.Workbook(self.Output_fold+'Test_'+time.strftime("%H_%M_%S_%d_%m_%Y")+'.xlsx') self.worksheet_A = self.workbook.add_worksheet('Sheet_A') self.worksheet_A.write(self.i,self.i,"Text 1") self.worksheet_A.write(self.i,self.i+1,"Text 2") self.i+=1 def fun1(self): self.t1="1" self.t2="2" self.worksheet_A.write(self.i,self.i,self.t1) self.worksheet_A.write(self.i,self.i+1,self.t2) self.i+=1 self.eg=libex.exlib() self.t1=self.eg.gen(0) self.t2=self.eg.gen(0) self.fun2() self.workbook.close() def fun2(self): if option==1: self.fun3() def fun3(self): self.t1=self.eg.gen(0) self.t2=self.eg.gen(1) self.worksheet_A.write(self.i,self.i,self.t1) self.worksheet_A.write(self.i,self.i+1,self.t2) self.i+=1 option=int(sys.argv[1]) if len(sys.argv)==2: p=main_cls() if option==1: p.fun1() else: pass else: print "Wrong command" 

libex.py

 class exlib(): def __init__(self): self.a="duh" def gen(self,x): if int(x)==0: return(self.a) elif int(x)==1: self.a=str(self.a+" "+self.a+" "+self.a+" !!!") return(self.a) 

现在,这在这个特定的情况下工作,但在实际的代码,它没有。 文件本身没有在输出目录中创build。 然后,我添加了以下行:

  print "Workbook created at path : ",self.workbook.filename 

看看这个文件是否已经被创build,并且令人惊讶地显示了完整的path!

我在哪里可能会出现问题,我怎样才能解决这个问题?

UPDATE1:我玩了一下,发现将selfself.workbook移动workbook移动到__init__(self)会创build填充了初始值的文件。

UPDATE2:已经按照build议以最小的方式复制了我的代码。 而这个工作得很好!

试图重现,文件正在创build就好,也许你有self.Output_foldvariables的问题,或与文件权限或您的代码编辑器的文件浏览器。