【发布时间】:2015-05-26 10:24:08
【问题描述】:
数据
915802|FINANCIAL INVESTORS TRUST|485BPOS|2015-03-19|edgar/data/915802/0001398344-15-001900.txt
1000045|NICHOLAS FINANCIAL INC|SC 13G|2015-03-27|edgar/data/1000045/0001436857-15-000014.txt
1000180|SANDISK CORP|4|2015-02-18|edgar/data/1000180/0001242648-15-000006.txt
1364688|Copano Pipelines/Upper Gulf Coast LLC|424B2|2015-02-24|edgar/data/1364688/0001047469-15-001126.txt
1634066|Robbins Nicholas W.|4|2015-03-25|edgar/data/1634066/0001628280-15-001965.txt
9984|BARNES GROUP INC|4|2015-02-13|edgar/data/9984/0000009984-15-000013.txt
1601072|Abengoa Yield plc|6-K|2015-01-16|edgar/data/1601072/0001193125-15-012191.txt
.....
我目前正在尝试此代码,我尝试将 statList 中的指定值之一与上面的数据匹配,并返回匹配的值和包含特定值的行。
import pandas as pd
q1 = open('/home/aranjohn/StockRec/StockIndex/edgar.full-index.2015.QTR1.master.idx', 'r')
q2 = str.splitlines(q1.read())
statList = ['915802', '1000045', '1364688', '198749', '9984']
for eachStat in statList:
for eachLine in q2:
if eachStat in eachLine:
print(eachStat, eachLine)
我理解这里的逻辑错误,我最终返回每个统计数据和每一行。我将如何返回 eachStat,然后返回包含 eachStat 的行?
期望的输出
915802 edgar/data915802/0001398344-15-001900.txt
1000045 edgar/data/1000180/0001242648-15-000006.txt
1364688 edgar/data/1364688/0001047469-15-001126.txt
9984 edgar/data/9984/0000009984-15-000013.txt
【问题讨论】:
-
为什么不使用正则表达式?
-
您需要具体的 10 位星号吗?
-
txt文件有几千行。我需要在每一行中搜索指定值的列表(所以是特定的)并返回指定的列表值和包含该值的行
-
阅读此docs.python.org/3.4/library/re.html 如果您需要更明确的帮助,请尝试显示您的输入和所需的输出。
-
我认为我在问题中所做的更改会让事情变得更清楚。
标签: loops python-3.x if-statement