我已經在python中編寫了一個腳本,它在單個文件上工作。我無法找到答案讓它在多個文件上運行,併爲每個文件單獨提供輸出。python多輸入和多輸出
out = open('/home/directory/a.out','w')
infile = open('/home/directory/a.sam','r')
for line in infile:
if not line.startswith('@'):
samlist = line.strip().split()
if 'I' or 'D' in samlist[5]:
match = re.findall(r'(\d+)I', samlist[5]) # remember to chang I and D here aswell
intlist = [int(x) for x in match]
## if len(intlist) < 10:
for indel in intlist:
if indel >= 10:
## print indel
###intlist contains lengths of insertions in for each read
#print intlist
read_aln_start = int(samlist[3])
indel_positions = []
for num1, i_or_d, num2, m in re.findall('(\d+)([ID])(\d+)?([A-Za-z])?', samlist[5]):
if num1:
read_aln_start += int(num1)
if num2:
read_aln_start += int(num2)
indel_positions.append(read_aln_start)
#print indel_positions
out.write(str(read_aln_start)+'\t'+str(i_or_d) + '\t'+str(samlist[2])+ '\t' + str(indel) +'\n')
out.close()
我想我的腳本拍攝多個文件與像a.sam,b.sam,c.sam名和每個文件給我的輸出:aout.sam,bout.sam,cout.sam
請問您可以通過我的解決方案或提示。
問候, Irek
您是否嘗試過在功能中包裝該腳本並將輸入和輸出文件的名稱作爲參數傳遞? –
'如果'我'或'D'在samlist [5]'沒有做你認爲它做的事情。這種情況總是如此。 –
我不認爲這總是如此。只有一些行包含I或D.其中大部分實際上沒有任何這些字母,因此條件是錯誤的。 – Irek