使用python从文本文件的列中提取数据
我不熟悉python文件数据处理。我有下面的文本文件,里面有一个新大学校园的报告。我想从“学院”一栏中提取数据,并为block_ABC_top的“book_id_1”提取数据,即23。我还想知道在colleges列中是否还有block_ABC_top出现,并找到book IDs_1列的值。 在文本文件中可以吗?或者我必须把它改成csv?如何编写此数据处理的代码?请帮帮我使用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
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的数据…而不是单独提取数据..而且输入文件在表的顶部有一些文本细节…:(