gpt4 book ai didi

python - 从python文件中获取字符串

转载 作者:行者123 更新时间:2023-12-01 03:00:20 26 4
gpt4 key购买 nike

我有一个文本文件,我想根据变量 site 从中提取某个字符串,该变量表示某个字符的位置。我想提取 site 位置前后 20 个字符。如果 site 的值超过 20,我的代码可以正常工作。但如果 site 之前的字符少于 20 个,则它不会返回任何内容。

例如,我这里有一个字符串,其中 site=5 在本例中为 K

MSGRGKGGKGLGKGGAKRHRKVLRDXYZX

现在我正在尝试提取字符K前后的20个字符。下面是我的代码;

data=myfile.read()    
str1 = data[site:site+1+20]
temp = data[site-20:site]
final_sequence = temp+str1
print final_sequence

这给了我一个 KGGKGLGKGGAKRHRKVLRDX 的输出。由于找不到 K 之前的 20 个字符,因此它没有打印 K 之前的字符。

正确的应该是MSGRGKGGKGLGKGGAKRHRKVLRDX

这引出了我的问题。如果 K 值下游的字符少于 20 个,如何修改代码以打印 K 之前的所有字符?谢谢。

最佳答案

问题是,由于 site-20 为负,Python 认为它是相对于序列末尾的索引,因此切片是空的(因为第一个索引在最后一个索引之后) )。只要确保永远不会低于 0。

data=myfile.read()    
str1 = data[site:site+1+20]
temp = data[max(site-20, 0):site]
final_sequence = temp+str1
print final_sequence

或更短

data=myfile.read()    
final_sequence = data[max(site-20, 0):site+1+20]
print final_sequence

请注意,您不需要使用 min(site+1+20, len(data)) 作为上限,因为 Python 会自动将超出序列末尾的切片索引剪切到序列中长度。

关于python - 从python文件中获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43911184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com