我正在使用Python,并且有一个文本文件,其中包含先前复杂代码的结果。它写入了一个名为“结果”的文件,该文件的结构如下:
xml file name.xml
['chebi:28726', 'chebi:27466', 'chebi:27721', 'chebi:15532', 'chebi:15346']
xml file name.xml
['chebi:27868', 'chebi:27668', 'chebi:15471', 'chebi:15521', 'chebi:15346']
xml file name.xml
['chebi:28528', 'chebi:28325', 'chebi:10723', 'chebi:28493', 'chebi:15346']
etc...
我当前的代码是:
file = open("results.txt", "r")
data = file.readlines()
for a in data:
print(a)
问题是我想获取该列表中的特定元素,例如chebi:28528
,然后将它们从当前的化合物转换成其他格式。我已经为这种转换编写了代码,但是在化合物实际转换之前的步骤上遇到了麻烦。
问题是我需要能够遍历文件并从该列表中选择每个元素,但是我无法这样做。
如果我愿意
for a in data:
for b in a:
它选择每个单独的字符而不是整个单词(chebi:28528
)。
有没有一种方法可以遍历文本文件并仅捕获特定的Chebi化合物,以便随后将它们转换为所需的其他格式? Python将整个化合物列表视为1个元素,并且该列表中的索引将仅对应于字符而不是化合物。
答案 0 :(得分:0)
因此,假设您的文件与上面相同,则看起来您具有原始测试格式的列表。您可以使用ast或类似方法通过将这些单词元素转换为Python列表来循环这些单词元素。
您有正确的想法,但实际上是在遍历字符。怎么样?
import ast
with open('results.txt', 'r') as f:
data = f.readlines()
for line in data:
if '[' not in line:
continue
ls = ast.literal_eval(line)
for word in ls:
if 'chebi' in word:
process_me(word)