spa*_*cup 0 python declaration conditional-statements
我正在写一个Python脚本,我有一个变量声明的问题,这是我的脚本的一部分:
if chromosome :
if chromosome.group(1) != '1' :
output.close()
print str(base)+" bases found in chromosome "+chr_name
chr_name = chromosome.group(1)
output = open(current_dir+"/"+name+"3/"+name+".chr"+chromosome.group(1)+".wig", "w")
output.write("fixedStep chrom=chr"+chromosome.group(1)+" start=1 step=1\n")
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我在关闭输出之前在代码中创建它,但事实上,这种情况永远不会发生,因为您无法在创建文件之前输入条件.
我可以做一些脏东西,在我的条件之前打开一个tmp文件,但那不是很优雅.所以我想知道是否有另一种解决方案让Python开心?
编辑:
if chromosome :
if chromosome.group(1) != '1' :
print str(base)+" bases found in chromosome "+chr_name
chr_name = chromosome.group(1)
with open(current_dir+"/"+name+"3/"+name+".chr"+chromosome.group(1)+".wig") as output:
output.write("fixedStep chrom=chr"+chromosome.group(1)+" start=1 step=1\n")
Run Code Online (Sandbox Code Playgroud)
EDIT2:
这是算法的概念,也许它可以帮助更好地理解问题:
for line in input do :
chromosome = re.search(something)
if chromosome :
if chromosome != '1' :
ouput.close()
output = open(file+chromosome)
output.write(title)
elif somethingElse :
output.write(somethingElse)
endif
endfor
Run Code Online (Sandbox Code Playgroud)
我想创建不同的文件(file1,file2,file3 ......).在创建file2之前,我必须关闭file1; 在创建file3之前,我必须关闭file2; 等...但对于第一个(file1),我不必关闭任何东西!
您可以with像这样使用语句
with open(current_dir+"/"+name+"3/"+name+".chr"+chromosome.group(1)+".wig", 'w') as output:
output.write("fixedStep chrom=chr"+chromosome.group(1)+" start=1 step=1\n")
Run Code Online (Sandbox Code Playgroud)
您不必担心显式关闭文件.
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |