为了账号安全,请及时绑定邮箱和手机立即绑定

使用python从文本文件中的列中提取数据

使用python从文本文件中的列中提取数据

胡子哥哥 2023-06-27 14:34:46
我是 python 文件数据处理的新手。我有以下文本文件,其中包含新大学校园的报告。我想从“colleges”列和“book_IDs_1”中提取 block_ABC_top 的数据,即 23。我还想知道在 Colleges 列中是否再出现 block_ABC_top 并找到 book IDs_1 列的值。可以在文本文件中吗?或者我必须将其更改为csv?我如何编写此数据处理的代码?请帮助我!Copyright 1986-2019, Inc. All Rights Reserved.Design Information-----------------------------------------------------------------------------------------------------------------| Version : (lin64) Build 2729669 Thu Dec  5 04:48:12 MST 2019| Date         : Wed Aug 26 00:46:08 2020| Host         : running 64-bit Red Hat Enterprise Linux Server release 7.8 | Command      : college report| Design       : college| Device       : laptop| Design State : in construction-----------------------------------------------------------------------------------------------------------------Table of Contents-----------------1. Information by Hierarchy1. Information by Hierarchy---------------------------+----------------------------------------------+--------------------------------------------+------------+------------+---------+------+-----+|                   colleges                   |                   Module                   | Total mems | book IDs_1 | canteen | BUS  | UPS | +----------------------------------------------+--------------------------------------------+------------+------------+---------+------+-----+| block_ABC_top                                |                                      (top) |         44 |         23 |       8 |    8 |   8 |   |    (block_ABC_top_0)                         |                            block_ABC_top_0 |          5 |          5 |       5 |    2 |   9 |       +----------------------------------------------+--------------------------------------------+------------+------------+---------+------+-----+我有一个数据列表,其中包含大学的数据,例如 block_ABC_top、block_ABC_top_1、block_ABC_top、block_ABC_top_1...这是我下面的代码我面临的问题是..它只获取 data[0] 的数据..但我有data[0] 和 data[2] 具有同一所大学,我希望检查发生两次
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

print [x.split(' ')[0] for x in open(file).readlines()]  #colleges column
print [x.split(' ')[3] for x in open(file).readlines()]  #book_IDs_1 column

尝试运行这些。


查看完整回答
反对 回复 2023-06-27
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

更好的方法是使用该split()函数,而不是使用到达字段的确切位置,因为您的字段由|符号分隔。您可以循环遍历文件的行并相应地处理它们。


for loop...:

    line_values = line.split("|")


print(line_values[0]) # block_ABC_top


查看完整回答
反对 回复 2023-06-27
?
杨魅力

TA贡献1811条经验 获得超6个赞

要提取 Book id 列数据,请使用下面的代码


with open('report.txt') as f:

  for line in f:

    if 'block_ABC_top' in line:

      line_values = line.split('|')

      print(line_values[4]) # PRINTS 23 AND 5


查看完整回答
反对 回复 2023-06-27
  • 3 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信