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]

2列目のみを表示するようにします。これらの名前は別のファイルで見つかるため、これを行う必要がありました。しかし、Pythonがこれらの名前を次のように読み取っていると思うので、問題があります。

「E」、「N」、「S」、「M」、「U」、「S」など。

別のフォルダから一致する名前を見つけることができないため、これにより問題が発生します。問題がどこにあり、どのように修正するかを知っている人はいますか?

4

1 に答える 1

2

row[1]ファイルの 2 列目全体ではありません。これは、現在の行の 2 番目のフィールドにすぎません。つまり、2 番目の列にある多くの値の 1 つにすぎません。

row[1]あなたの場合は文字列です。Python の文字列もシーケンスです。len(some_string)文字列の長さを調べたり、特定の位置にある要素を取得したりするために呼び出すことができますpos:some_string[pos]など.

于 2012-08-01T19:26:10.823 に答える