我是 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
嘗試運行這些。

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
更好的方法是使用該split()函數,而不是使用到達字段的確切位置,因為您的字段由|符號分隔。您可以循環遍歷文件的行并相應地處理它們。
for loop...:
line_values = line.split("|")
print(line_values[0]) # block_ABC_top

楊魅力
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
添加回答
舉報
0/150
提交
取消