我的代碼是:問題與製作一個字符串列表,不斷收到一個錯誤,它是一個列表,當我使用一個字符串的方法,我該如何解決這個問題?
import sys
filename = sys.argv[1]
def make_header(genbank_file):
openfile = open(genbank_file)
for new_line in openfile:
if new_line.startswith("DEFINITION",):
definition_string = new_line
if new_line.startswith("VERSION"):
version_string = new_line
if new_line.startswith("ACCESSION"):
accession_string = new_line
definition_string = definition_string.strip("DEFINITION")
definition_string = definition_string.strip(" ")
version_string = version_string.replace(" ","")
version_string = "".join(version_string)
for char in str(version_string):
version_string = version_string.split(':',1)[1:]
header = ">gi|" + version_string + accession_string + definition_string
return header
print(make_header(filename))
我不知道爲什麼變量version_string
不是字符串,它應該是一個自動,因爲它是從一個文本文件中取出,如果我沒有記錯,但我試過用version_string = str(version_string)
和version_string = "".join(version_string)
,但即使在那之後我仍然得到錯誤:
version_string = version_string.split(':',1)[1:]
AttributeError: 'list' object has no attribute 'split'
已version_string
儼然成爲東西我不能變成一個字符串? 當我打印它時,它顯示VERSIONNG_012637.1GI:255652911
,因爲空格被刪除。
而不是添加「解決」的問題只是[接受](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)幫助你解決這個問題的答案或者如果你自己找到了解決方案(它與現有的答案有很大的不同),那麼你也可以[自我回答](https://stackoverflow.com/help/self-answer)你的問題。 – MSeifert