我有一个包含以下数据的.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”等。
这会导致问题,因为我无法从其他文件夹中找到匹配名称。任何人都知道问题在哪里以及如何解决?
答案 0 :(得分:2)
row[1]
不是文件的第二列。它只是当前行中的第二个字段,即第二列中的许多值中的一个。
row[1]
是您的案例中的字符串。 Python中的字符串也是序列;您可以致电len(some_string)
查找字符串的长度,在给定位置pos
:some_string[pos]
等处获取元素。