IDE中的打印值和导出值不同

时间:2017-10-10 12:26:42

标签: python python-2.7

我在控制台中打印并保存到文件中获得的值是不同的。当我在控制台中打印时,我会在后续行中获得1和0,具体取决于getchromosome()是否为真。

但是,当我尝试将此输出打印到Excel工作表时,我会在他们自己的单元格中连续获得500 0。 500限制似乎是由于for i in xrange(500)行,但我不知道要替换它。

问题:

  1. 我应该将for i in xrange(500)行替换为允许程序将尽可能多的数据放入电子表格中?

  2. 为什么此代码在电子表格中仅打印0,但是1和0都取决于控制台中getchromosome()是否为真?

  3. 非常感谢

    编辑: 电子表格结构

      

    CHR位置参考变异

         

    chr22 44357025 C G

         

    chr22 44357025 C G

         

    chr22 44381361 G A

    电子表格中的位置编号用于查找人类染色体文件中的字符,在本例中为chr22,已作为seq加载。这个文件是满是字符A,C,T和G的行。如果满足getchromosome()中的条件,我希望在文件中打印1,如果不打印,则打印0(打开)当然,这条染色体的数据集大约是1500)。

    import xlwt
    from openpyxl import load_workbook
    
    def getlocation():    
        CHR = 'chr22'
        rownum = 1
        cellrefA = "A%s" %rownum
        cellrefB = "B%s" %rownum
        cellrefD = "D%s" %rownum
        while CHR == 'chr22':
            rownum = rownum + 1
            cellrefA = "A%s" %rownum
            cellrefB = "B%s" %rownum
            cellrefD = "D%s" %rownum
            if sheet [cellrefA].value == "chr22" :
                x = sheet[cellrefB].value
                D = sheet[cellrefD].value     
                CpGval=getchromosome(x,D)
    
                print CpGval
    
                if CHR == "chr22":
                    f = open('out.xls', 'w')
                    for i in xrange(500):
                        f.write("%s\n" %CpGval) 
    
            if rownum == 108172:
               CHR = 'stop'
    
    def getchromosome(x,D):
        CpGnum = 0
        dnastring1 = seq[x-1]
        dnastring2 = seq[x]
        dnastring3 = seq[x+1]
    
        if dnastring2 == "C" and D != "C":
            if dnastring3 == "G": 
                CpGnum += 1
        if dnastring2 == "G" and D != "G":
            if dnastring1 == "C":
                CpGnum += 1    
    
        return CpGnum
    
    print getlocation()
    

0 个答案:

没有答案