我有两个文本文件,内容分别位于(file1.txt
和file2.txt
下;
MKKVEAIIRPFKLDEVKIALVNAGIVGMTVSEVRGFGRQKGQTERYRGSEYTVEFLQKLKVEIVVEDNQVDMVVDKIIAAARTGEIGDGKIFISPVEQVIRIRTGEKNTEAV
和
AQTVPYGIPLIKADKVQAQGYKGANVKVGIIDTGIAASHTDLKVVGGASFVSGESYNTDGNGHGTHVAGTVAALDNTTGVLGVAPNVSLYAIKVLNSSGSGTYSAIVSGIEWATQNGLDVINMSLGGPSGSTALKQAVDKAYASGIVVVAAAGNSGSSGSQNTIGYPAKYDSVIAVGAVDSNKNRASFSSVGAELEVMAPGVSVYSTYPSNTYTSLNGTSMASPHVAGAAALILSKYPTLSASQVRNRLSSTATNLGDSFYYGKGLINVEAAAQ
我需要根据我知道的这个字符串的索引来获取字符。现在,我需要在索引值之前获取20个字符,在索引值之后获取20个字符,这使得总共41个字符(包括索引的字符)。 这是我的代码
with open('file1.txt', 'r') as myfile:
x = 50
data=myfile.read()
str1 = data[x:x+1+20]
temp = data[x-20:x]
print temp+str1
file1.txt
一的输出是SEVRGFGRQKGQTERYRGSEYTVEFLQKLKVEIVVEDNQVD
,这是正确的。
问题是如果我在file2.txt
上运行相同的代码并将索引(x的值)更改为56
,我应该得到的输出是AASHTDLKVVGGASFVSGESYNTDGNGHGTHVAGTVAALDN
。相反,我得到ASHTDLKVVGGASFVSGESYNTDGNGHGTHVAGTVAALDNT
这是为什么?
答案 0 :(得分:0)
span {
margin: 0;
margin-left: 10px;
padding: 0;
}
.http_method .link{ background: linear-gradient(#4c99d7,#1a66a3);
border: 1px solid #1a66a3;
height: 25px;
line-height: 10px;
vertical-align: middle;
}
.http_method span{
font-size: 30px;
margin-right: 10px;
padding-left: 10px;
vertical-align: middle;
color: #686b6d;
}
会给你
<link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
<span class='http_method'>
<a href='test' class="toggleOperation"><span class="link">method</span>
<span class="fa fa-angle-down"></span>
</a>
即。你的字符串中的字符36到55(包含)
字符串从字符0开始,因此数据[36]确实是你的第二个A,即字符串的第37个字符
这里没有错误,只是一个反击问题
你可能实际上想要设置x = 55(即中间字符是你的字符串的第56个,因为它的索引是55,因为在python中索引从零开始)
答案 1 :(得分:0)
with open('file1.txt', 'r') as myfile:
x = 50
data=myfile.read()
print data[x-20:x+21]
从位置x-20到位置x + 21进行切片。这将为您提供41个字符。
data2,56返回:
ASHTDLKVVGGASFVSGESYNTDGNGHGTHVAGTVAALDNT
- 您的代码是正确的。
答案 2 :(得分:0)
好的,如果你检查,文件1(第一行)中的索引50是Y
,左边的20个元素从SEV...
开始,这意味着从索引30开始。这是你对file1的结果,你说的是正确的。
M K K V E A I I R P F K L D E V K I A L V N A G I V G M T V S E V R G F G R Q K G Q T E R Y R G S E Y T V E F L Q K L K V E I V V E D N Q V D M V V D K I I A A
A Q T V P Y G I P L I K A D K V Q A Q G Y K G A N V K V G I I D T G I A A S H T D L K V V G G A S F V S G E S Y N T D G N G H G T H V A G T V A A L D N T T G V
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
现在,对于file2(第二行),您将索引设置为56
,文件2中为N
,左侧的20个元素从ASH...
开始,从索引36开始。这是预期的结果,我不明白为什么你说这是错的。
第三行代表索引号