1

我有一个 .csv 文件,其中包含如下数据:

uc007ayl.1,ENSMUSG00000041439

uc009mkn.1,ENSMUSG00000031708

uc009mkn.1,ENSMUSG00000035491

我有一些代码可以逐列读取它们

    import csv
    import os.path
    #open files + readlines
    with open("C:/Users/Ivan Wong/Desktop/Placement/Lists of targets/Mouse/UCSC to Ensembl.csv", "r") as f:
        reader = csv.reader(f, delimiter = ',')
        #find files with the name in 1st row
        for row in reader:
            graph_filename = os.path.join("C:/Users/Ivan Wong/Desktop/Placement/Interesting reading/3'ORF",row[0]+"_nt_counts.txt.png")
            if os.path.exists(graph_filename):
                y = row[0]+'_nt_counts.txt'  
                r = open('C:/Users/Ivan Wong/Desktop/Placement/fp_mesc_nochx/'+y, 'r')
                k = r.readlines()
                r.close
                del k[:1]
                k = map(lambda s: s.strip(), k)
                interger = map(int, k)   
                import iter

tools
            #adding the numbers for every 3 rows
            def grouper(n, iterable, fillvalue=None):
                "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
                args = [iter(iterable)] * n
                return itertools.izip_longest(*args, fillvalue=fillvalue)
            result = map(sum, grouper(3, interger, 0))
            e = row[1]

现在我可以说

print row[1]

使其仅显示第二列。我需要这样做,因为我将在另一个文件中找到这些名称。但我有一个问题,因为我认为 python 正在以这种方式读取这些名称:

“E”、“N”、“S”、“M”、“U”、“S”等。

现在这会导致问题,因为我无法从另一个文件夹中找到匹配的名称。有谁知道问题出在哪里以及如何解决?

4

1 回答 1

2

row[1]不是文件的整个第二列。它只是当前行中的第二个字段,即第二列中的许多值之一。

row[1]在你的情况下是一个字符串。Python 中的字符串也是序列;您可以调用len(some_string)以找出字符串的长度,在给定位置取一个元素pos:some_string[pos]等。

于 2012-08-01T19:26:10.823 回答