我有我的函數給定輸入文件的規則列表。如果它們中的任何一個在給定的文件中被違反,我希望我的程序返回錯誤消息並退出。匹配每行的元素
- 文件中的每一基因應該是相同的染色體
因此,對於線路如:
NM_001003443 CHR11 + 5997152 5927598 5921052 5926098 1 5928752,5925972,5927204,5396098, NM_001003444 CHR11 + 5925152 5926098 5925152 5926098 2 5925152,5925652,5925404,5926098, NM_001003489 CHR11 + 5925145 5926093 5925115 5926045 4 5925151,5925762,5987404,5908098, 等
文件中的每一行都將是此行的變化
因此,我希望確保該文件中的每一行是CHR11
然而,我可以得到一個文件與CHR的不同列表(和任何數量的數字)。因此,我想編寫一個函數,以確保在每行的chr中找到的數字是相同的。
我應該使用正則表達式嗎?或者我該怎麼做?順便說一句,這是python。
如:chr \ d +? 我不確定如何確保,無論是匹配的是在每行,雖然同...
我目前有:
from re import *
for line in file:
r = 'chr\d+'
i = search(r, line)
if i in line:
,但我不知道如何確保它是同樣在每行...
在參考sajattack的回答
fp = open(infile, 'r')
for line in fp:
filestring = ''
filestring +=line
chrlist = search('chr\d+', filestring)
chrlist = chrlist.group()
for chr in chrlist:
if chr != chrlist[0]:
print('Every gene in file not on same chromosome')
你能給一個輸入文本(多行)和什麼被認爲是「有效」的例子嗎?如果該行有'chr11',那麼文件中的其他每行都應該在字符串中包含'chr11'? – Jack 2012-04-25 02:00:57
這聽起來像是Python的[string functions](http://docs.python.org/tutorial/introduction.html#strings)和[regex library]的一個_very_ straighforward應用程序(http://docs.python.org/library /re.html)。也許有點過於直接,值得在SO上發佈一個問題... – jogojapan 2012-04-25 02:01:30
對,它非常簡單。我只是不斷遇到錯誤,我是編程新手,需要一些幫助。 – 2012-04-25 02:21:38