首先我要说的是我不会说中文,也不会有任何理由让我的默认输出是中文的。那说这是我遇到过的最奇怪,最热闹的错误。
首先,我的代码应该计算长度为4的不同子串在DNA序列中重叠出现的次数。相关代码如下所示
#file containing data
f = open(infile, 'r')
#open an additional file to write output to
g = open("k-Mer output.txt", 'w')
#empty list
l=[]
#add lines of file to list
for line in f:
l.append(line.strip())
d = {}
#adds every unique substring of four to my dict
for i in four_mer_maker():
d[i] = 0
#l[1] is the sequence to be examined, assume it is all 1 line
#checks four letters, then shifts over one and checks those 4
for i in range(len(l[1]) - 3):
d[l[1][i:i+4]] += 1
#now just write the ordered values to an output file
for i in sorted(d.items()):
g.write(str(i[1])+ ' ')
我的文件完全乱码,看起来像这样
‴‱‴″‰‱‱‵‱″‱′′‱′‰‱‱″‱′‱
甚至更奇怪,我试着用输出稍微玩一下。只是改变
g.write(str(i[1])+ 'hello')
使我的输出看起来像这样。
栴汥潬栱汥潬栴汥潬栳汥潬栰汥潬栱汥潬栱
谷歌翻译说它的中文。到底发生了什么?
答案 0 :(得分:1)
显然,记事本正在使用错误的BOM解释我的输出。像这样更改以下代码行
g = open("k-Mer output.txt", 'w')
g = open("k-Mer output.txt", 'w', encoding = 'utf16')
解决了这个问题。谢谢@ user202729