您按制表符拆分整个文件,从而产生一个字符串列表。
然后,您遍历该列表,将f[i]
(单个字符串)分配给一长串变量。从您的错误消息中,您尝试将 4 个字符的字符串分配给这些变量,从而导致分配单个字符,但由于字符数与变量数不匹配而失败。
最有可能的是,您想要处理制表符分隔的文件。将csv
模块用于此类任务:
import csv
with open('C:/tsg3.txt', 'rb') as f:
reader = csv.reader(f, delimiter='\t')
for row in reader:
# `row` is a list of columns.
因为文件有标题,你也可以使用 acsv.DictReader
和使用字典来代替(用标题键入):
with open('C:/tsg3.txt', 'rb') as f:
reader = csv.DictReader(f, delimiter='\t')
for row in reader:
# `row` is a dictionary of columns.
并非所有行都有所有值;有些似乎缺少 Nucleotide_Sequence 和 Protein_Sequence 列。
为了将来参考,您可以直接在 python 列表上循环,不需要使用带有 a 的索引range()
:
for i in f:
# do something with the individual elements of `f`, assigned to `i` each iteration.