我一直在研究一个程序,它将把一行中的字符(在示例中是hhhhhhhhhhhhhhhhhffffeee[X]b[d`[Y[^Y,在示例中)替换为十进制的ascii等价物并替换结果行。到目前为止我所拥有的。。。在
f2 = path to file
if re.match('[AGNTC]{5}', line):
next_line = next(f2)
unilist.append(next(f2))
for j in unilist:
j=[x for x in unilist if x]
g=[word.strip() for word in j]
g= ''.join(g)
for ch in g:
char= ord(ch)
char= int(char)
ch= str(char-33)
一切都到了这个地步。我只需要指针,因为我不久前开始学习python。我想根据它们对应的字符所在的位置将所有ch放入一个字符串中。f2文件看起来有点像:
^{pr2}$我在想也许用iTerools来配对。我还需要修改带有T、G、C和A的行,以便如果ascii代码小于20,则相应的字符将被N替换。正如我前面提到的,我只需要知道什么工具最适合这份工作,并感谢所有的建议和提示。在
我试过:
for cha in g:
g.replace(str(cha), ch)
print(g)
但是,它打印回初始行。在
编辑: 我已经解决了序列的问题,但我需要知道如何对值。。。在
for cha in g:
char= ord(cha)
char= int(char)
ch= str(char-33)
mylist.append(ch)
mylist=','.join(mylist)
f1.write('%s\n' %mylist)
编辑: 我试着写一点:
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return zip(a, b)
burp = random.randrange(0, 100000000000)
f1 = open(path to file)
f3=open(path to file3, 'w+')
for line, next_line in pairwise(f1):
if re.match ('[AGTCN]{5}', line):
for ch in next_line:
if ch<str('20'):
for ch in line:
line.replace(ch,'N')
f3.write('%s' %line)
else:
if re.match(r'\d{1,1}', line):
line=''
f3.write('%s' %line)
else:
f3.write('%s' %line)
但是,我想知道我怎么能考虑到这两行中的“在分数和ch位置之间”。现在输出有第二行,没有修改或任何。。。在
编辑: 现在,我只需要找到一种方法,根据我最近编辑的ascii分数,在第二行“替换”N。在
我相信您要做的是迭代文件中的第二行和第四行,并根据第四行字符的ASCII值更改第二行中的字符。在
输入:
输出:
^{pr2}$Python字符串是不可变的(不能修改)。读入整个文件,将相关行转换为列表,检查第四行中哪些字符的ASCII值大于53,然后用
N
覆盖第二行中的相应字符相关问题 更多 >
编程相关推荐