python - 读取文件后从列表中获取特定元素
问题描述
我正在使用 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 个元素,并且该列表中的索引将仅对应于字符而不是化合物。
解决方案
因此,假设您的文件如上所述,看起来您有原始测试格式的列表。您可以通过使用 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)
推荐阅读
- excel - 聚合通配符搜索
- java - 如何使用数组中的坐标在谷歌地图上绘制多边形
- javascript - Ajax - 我提交后无法显示帖子
- button - (如何)我可以更改 F# Fable Elmish 中禁用按钮的字体颜色吗?
- android - 使用Android项目的Gradle插件将代码注入合并清单
- linux - 反转很多值的 grep 没有一致的输出
- java - 动态生成的 JNLP,使用不同证书签名的 jar
- visual-studio-code - 需要能够使用快速打开在 VSCode 中搜索 python-packages
- python - 如何阻止第二个线程启动直到第一个线程停止或在 Tkinter 中执行线程时如何锁定按钮
- sql-server - (Sql Server) BEGIN TRANSACTION vs (Qt) QSqlDatabase.database().transaction()