小编spa*_*cup的帖子

在声明之前使用变量

我正在写一个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) …
Run Code Online (Sandbox Code Playgroud)

python declaration conditional-statements

0
推荐指数
1
解决办法
143
查看次数