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

使用python从文本文件的列中提取数据,python,csv,file,text,multiple-columns,Python,Csv,File,Text,Multiple Columns,我不熟悉python文件数据处理。我有下面的文本文件,里面有一个新大学校园的报告。我想从“学院”一栏中提取数据,并为block_ABC_top的“book_id_1”提取数据,即23。我还想知道在colleges列中是否还有block_ABC_top出现,并找到book IDs_1列的值。 在文本文件中可以吗?或者我必须把它改成csv?如何编写此数据处理的代码?请帮帮我 Copyright 1986-2019, Inc. All Rights Reserved. Design Informat

我不熟悉python文件数据处理。我有下面的文本文件,里面有一个新大学校园的报告。我想从“学院”一栏中提取数据,并为block_ABC_top的“book_id_1”提取数据,即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 Hierarchy

1. 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,block_ABC_top,block_ABC_top,block_ABC_top…下面是我的代码 我面临的问题是..它只接受数据[0]的数据..但我有数据[0]和数据[2]拥有同一所大学,我希望检查会发生两次

with open ("utility.txt", 'r') as f1:
            
            for line in f1:
                if data[x] in line:
                    line_values = line.split('|') 

                    if (int(line_values[4]) == 23 or int(line_values[7]) == 8):
                        filecheck = fullpath + "/" + filenames[x]
                        print filecheck

                        #print "check file "+ filenames[x]
                    x = x + 1

            f1.close()
试着运行这些


试着运行这些函数。

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

for loop...:
    line_values = line.split("|")

print(line_values[0]) # block_ABC_top

与其使用到达字段的确切位置,不如使用
split()
函数,因为字段之间用
|
符号分隔。您可以循环遍历文件的行并相应地处理它们

for loop...:
    line_values = line.split("|")

print(line_values[0]) # block_ABC_top

要提取图书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

要提取图书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

有具体问题吗?你试过什么,做过什么研究吗?请看,.@AMC…是的..我试图搜索文件中的数据块\u ABC\u top并提取该行…但我如何从该行的“块id”列中提取数据?请共享到目前为止的代码以及遇到的特定问题。@AMC..使用代码编辑是否存在特定问题?你试过什么,做过什么研究吗?请看,.@AMC…是的..我尝试搜索文件中的数据块ABC_top并提取该行…但是我如何从该行的block id列中提取数据?请共享您目前拥有的代码,然后,以及您遇到的特定问题。@AMCcode@yansh...i运行此…但我特别希望从book ID_1列中获取块_ABC_top的数据…而不是单独提取数据..此外,输入文件在表格顶部有一些文本详细信息(@Yans…我运行了这个…但我特别希望从book IDs_1列中获取block_ABC_top的数据…而不是单独提取数据..而且输入文件在表的顶部有一些文本细节…:(