对于下面的工作代码,我诉诸创建一个类实例来存储我的文件输出[a_string]的名称变量和文件对象本身[f_object]。我发现在第一个if语句中分配的变量没有出现在以下elif语句内的作用域中。变量赋值在里面,然后如果循环
#Text file splitter, data bewteen the '*' lines are copied into new files.
class Output_file():
def __init__(self,a_string='none',f_object='none'):
self.name=a_string
self.foutput=f_object
outputfile=Output_file()
n=0
filehandle=open('original file.txt')
for line in filehandle:
if line[0]=='*': #find the '*' that splits the rows of data
n+=1
outputfile.name = 'original file_'+str(n)+'.txt'
outputfile.foutput= open(outputfile.name,'w')
outputfile.foutput.write(line)
elif len(line.split()) ==5 and n > 0: #make sure the bulk data occurs in blocks of 5
outputfile.foutput= open(outputfile.name,'a+')
outputfile.foutput.write(line)
outputfile.foutput.close()
我是否必须使用类实例来存储文件名和对象,还是有更好的方法吗?
你怎么知道他们不会携带到,如果我想模仿你的风格,我想这样的代码它接下来的elif声明? – 2012-02-29 18:40:12